tclcl-1.20/CHANGES.html0000664000076400007660000011647311653024256013374 0ustar tomhnsnam TclCL Change Log

TclCL: Change History


TclCL-1.20 Released Sat Oct 29 2011


tclcl-1.19 Released Sat Mar 10 2007

  • Refresh packages, Sun OS compilation patch

  • tclcl-1.18 Released Sat Sep 24 2006

  • Refresh packages

  • TclCL-1.17 Released Sun Oct 2 15:00:00 PDT 2005

    • [tomh] Mon Sep 26 21:58:00 PDT 2005

    • Bumping up version numbers: configure.in.TclCL, configure.in.tcl, configure.in.tk

    • [tomh] Sun Sep 25 22:22:00 PDT 2005

    • Remove configure.in.Tcl because it is in the way for HFS+ file systems. Slight mod to the Tcl include path for Fedora Core 4

    • [tomh] Tue Sep 6 21:53:00 PDT 2005

    • Patch for Mac OS X (XCode 2.1). Contributed by Francesco Gringoli.

    • [tomh] Wed Aug 31 18:51 PDT 2005

    • patches for Debian pre-installed Tcl/Tk, and for building with -Wall and -Werror on gcc-4.0.1 (mainly autoconf fixes). Contributed by Georg Wittenburg and Mathieu Lacage, respectively.

    RELEASE: TclCL-1.16 released Wed Jan 19 12:46:22 PST 2005

    • [johnh] Fri Dec 10 08:55:52 PST 2004

    • tclcl.h modified to build under gcc-3.4.

    • [johnh] Tue Aug 17 10:23:48 PDT 2004

    • autoconf now finds http.tcl automatically for better portability

    • [xuanc] Tue Feb 10 21:07:17 PST 2004

    • Change the default versions in conf/configure.in.{tcl,tk,otcl,TclCL}

    • [johnh] Tue Feb 10 17:32:55 PST 2004

    • Configure changes to support tcl-8.3.5 on Fedora.

    RELEASE: TclCL-1.15 released on Fri Jan 9 14:14:08 PST 2004

    • [xuanc] Sun Oct 12 21:35:22 PST 2003

    • Made changes to config for support to tcl/tk8.4.5 libs

    TclCL-1.0b13[OLD]/tclcl-1.14[NEW]released Fri Feb 14 10:35:27 PST 2003

    • [xuanc] Tue Jul 29 11:16:14 PDT 2003

    • Make tclcl portable to tcl/tk 8.4.3. Change char* to CONST84 char* (or CONST84_RETRUN char * if it is a function return) (these two macros are defined in otcl.h) Change Tcl:result to return const char * rather than char *.

    • [johnh] Wed Jul 17 10:18:06 PDT 2002

    • Re-enabled code to avoid dumping tcl code on errors if there's a LOT of tcl code. (Disabled since Dec-00 by mistake.)

    • [Tim Buchheim] Thu Jul 11 17:25:00 PDT 2002
      Fixed Tcl "source" command so filenames with spaces work.


    TclCL-1.0b12[OLD]/tclcl-1.13[NEW] released Wed Apr 10 15:02:43 PDT 2002

    • [kclan] Thu Sep 6 12:50:03 PST 2001
      Remove Tcl.h from the tclcl distribution because it causes build problems on Mac OS X and is only around for backwards compatibility with 3-year old code.
    • [lim] Thu Aug 2 14:57:03 PDT 2001

    • Changed PUBLIC and PRIVATE to INSTPROC_PUBLIC and INSTPROC_PRIVATE to avoid conflicts with Solaris header files.
    • [lim] Tue Jul 10 16:19:19 PDT 2001

    • Fixed INSTPROC and PROC so they will compile with recent versions of gcc.

    TclCL-1.0b11[OLD]/tclcl-1.12[NEW] released on Wed May 30 10:11:06 PDT 2001

    • [Padma Haldar] Tue Mar 6 12:32:23 PST 2001
      Added bind function for binding TclObjects. Files modified: tclcl.h, Tcl.cc.
    • [johnh] Tue Dec 12 10:36:34 PST 2000

    • Updated config.guess to autoconf's current one.

    TclCL-1.0b10[OLD]/tclcl-1.11[NEW] released on Mon Oct 16 21:01:42 PDT 2000

    • [haoboy] Fri Oct 6 11:16:17 PDT 2000
      Add global qualifier to abort() inside TclObject::abort().

    • [johnh] Wed Aug 16 21:03:03 PDT 2000
      Tcl::eval(const char*) added (so that ns-2 works with tcltk-8.3).

    • [johnh] Tue Aug 8 22:35:02 PDT 2000
      Changes to build with tcltk-8.3 (requires --with-tcl-ver=8.3 on configure line).

    • [johnh] Mon Jun 12 15:54:31 PDT 2000
      Errors evaling tcl code now don't dump ALL the code if there's a lot of it (like all the ns code!).

    TclCL-1.0b9[OLD]/tclcl-1.10[NEW] Released on Tue Jan 18 16:19:44 PST 2000

    • [haoboy] Fri Apr 14 17:55:41 PDT 2000 Added check in TclObject::create_framevar() so that it will do nothing if the variable already exists in the frame. When the variable does not exist, the 'set var 0' won't change the variable value in C++ because the InstVar link isn't there yet. However, if it's already there (e.g., we have two instvars of the same variable in the same frame), this 'set var 0' will change the C++ variable value, which is not expected. This check disables this incorrect behavior.
    • [haoboy] Fri Mar 24 11:41:48 PST 2000 Virtual method abort() as a generic interface to avoid all the 'sprintf(stderr, ...); abort()' stuff.
    • [johnh] Tue Jan 4 14:18:32 PST 2000
      Support for delay-bound trace vars added (requiring some reworking of the existing delay-bind APIs).
    • [johnh] Fri Nov 19 15:27:44 PST 1999
      NOWRK ifdefs (which conditionalized removing wrk_) are now gone.
    • [johnh] Fri Nov 19 15:13:53 PST 1999
      Portability fixes: snprintf decl moved to tclcl-config.h, u_int's removed. (u_int isn't portable... spell it out.)
    • [johnh] Wed Oct 27 16:14:36 PDT 1999
      1. get rid of wrk_ in InstVar. This shouldn't affect anyone since it was only used internally. (Saves 32B per bound variable.)

      2. get rid of ios{Width,Precision,Mask} in TracedVar. By default the streams stuff isn't compiled in and no one was using this. (Saves 4B per TracedVar.)

      3. converts tracedvars to use snprintf internally. This is an INCOMPATIBLE change: if you used to call tv->value(foo), you now need to call tv->value(foo, sizeof(foo)).

    • [YP] Fri May 28 12:19:23 PDT 1999
      Added support for making some instvars "untouchable": if the variable is set/read a warning message is shown and the execution abort()s. Needed to enforce the use of new names after renaming (see the macro _RENAMED).
    • [johnh] Tue Apr 6 09:49:01 PDT 1999
      Better recognition (hopefully) of windows compilers that can't handle long strings in tcl2c++.cc.

    TclCL-1.0b8[OLD]/tclcl-1.9[NEW] Released on Mon Feb 22 17:17:05 PST 1999

    • [haoboy] Tue Feb 23 12:04:51 PST 1999
      Fixed bug for tcl2c++.c under SunOS, where ungetc() doesn't function at all for a pipe stream.
    • [haoboy] Mon Feb 22 17:14:20 PST 1999
      Added 64-bit integer support (for Solaris, Linux and FreeBSD).
    • [YC] Tue Nov 17 10:37:13 PST 1998
      • Added code to the "import from web" mechanism to test whether the cached copies are still up-to-date or not
    • [johnh] Mon Nov 16 23:15:08 PST 1998
      Ranlib autoconf support fixed.

    TclCL-1.0b7[OLD]/tclcl-1.8[NEW] Released on Wed Oct 21 18:31:16 PDT 1998

    • [johnh] Tue Aug 4 09:15:55 PDT 1998
      Declare snprintf in Tcl.cc (to suppress warnings), enforce length checking in our implementation.
    • [johnh] Wed Jul 29 09:49:38 PDT 1998
      Fixed a double-free bug left over from the classinstvars code.
    • [YC] Mon Jul 27 15:09:31 PDT 1998
      • "Rewrote" tcl-import.tcl to speed things up. Import from disk while a mash script is running (as opposed to expanded at make-time by mash-1/tcl-expand.tcl) now takes a third of its original time.
      • Added a simple HTTP cache to the import off the web mechanism. It is implemented as Class HTTPCache in tclcl/tcl-http.tcl
    • [ACS] Fri Jul 17 12:07:09 PDT 1998
      Fixed bug introduced with classinstvars in which setting an instvar to an empty list resulted in the instvar containing a list containing an empty list instead of just an empty list.

    TclCL-1.0b6[OLD]/tclcl-1.7[NEW] Released on Tue July 7 12:20:00 PST 1998

    • [johnh] Thu Jul 2 11:10:03 PDT 1998
      Changed WRK_SMALL_SIZE to 32 (from 64) to save memory.
    • [johnh] Wed Jul 1 11:33:30 PDT 1998
      classinstvars support turned on by default (and the ifdef's removed).
    • [johnh] Wed Jun 10 18:13:57 PDT 1998
      • No longer link the library to libTcl.
      • snprintf option added for SunOS
    • [johnh] Tue Jun 9 21:17:07 PDT 1998
      Better support for delayed binding (nee classinstvars); added some length checking to buffers.

      Delayed binding is only available if you configured tclcl and otcl with the option --enable-tclcl-classinstvar. (When doing so, btw, make sure you've got everyone built the same way, or you'll get random crashes due to mismatched slots in virtual function tables.)

      Delayed binding are a way to do binding between OTcl and C++ that consume memory only when bound variables are actually in use from Tcl. (Normally bound variables consume memory throughout the lifetime of the object.) Delayed binding is therfore useful if you have an object with many instances (for example, an NsObject) whose bound variables are only occationaly used from Tcl (for example, off_cmn_).

      Here's a minimal example of delayed binding:

      class C5 : public TclObject {
      public:
      	C5();
      	virtual int delay_bind_dispatch(const char *varName, const char *localName);
      	virtual void delay_bind_init_all();
      protected:
      	int normal_;
      	int delayed_;
      };
      
      DEFINE_OTCL_CLASS(C5, "C5")
      {
      }
      
      C5::C5()
      {
      	bind("normal_", &normal_);
      }
      
      void
      C5::delay_bind_init_all()
      {
      	delay_bind_init_one("delayed_");
      }
      
      C5::delay_bind_dispatch(const char *varName, const char *localName)
      {
      	DELAY_BIND_DISPATCH(varName, localName, "delayed_", delay_bind, &delayed_);
      	return TclObject::delay_bind_dispatch(varName, localName);
      }
      

      From Tcl there should be no visible differences between delayed and normally bound variables.

      The penality for delayed binding is higher run-time cost. Classes with delayed binding incur a search cost proprotional to class hierarchy depth (of that class) and the number of delay-bound variables in that class hierarchy.

      (What happens with delayed binding is that you call the delay_bind_dispatch function for each instvar/set/get, this function percolates up the class hierarchy. (This is basically how command dispatch currently works.) With normal binding each instvar is put in a Tcl_Hash and accessed in O(1) time (but with higher memory requirements).

      For a simple ns run with ~1400 NsObjects (~120 nodes/links/agents) and both of NsObject's variables delay-bound run-time went up ~2% (not clear if this is outside expected error) and memory went down 10%. For larger simulations run-time cost should stay constant memory savings should rise. (If you want to your own benchmarks, my test case was ./ns tcl/ex/many_tcp.tcl -client-arrival-rate 20 -ns-random-seed 1 -mem-trace 1.)

    • [johnh] Tue Jun 9 21:17:07 PDT 1998
      • Added support code for classinstvars. Currently this code is only turned on if you do --enable-tclcl-classinstvars when configuring. (Re autoconf'ed.)
      • Moved {Traced,}InstVar::import_instvar to TclObject::create_instvar
      • Shortened wrk_ to 32 bytes.
    • [CR] Sun May 31 17:01:21 PDT 1998
      • In Makefile.in, a set of tcl library files are currently packaged with a set of tk library files in the embedded tcl object, et_tk. To include these tcl library files (but not the tk library files) in the smash executable (a.k.a. mash w/out tk), I would like to package them in a separate embedded tcl object, et_tcl. For now, just added et_tcl, but after get ns-developers approval, will remove tcl library files from et_tk. Btw, also added new embedded tcl files, tcl-import.tcl and tcl-http.tcl, to et_tcl.
      • Added ability for mash interpreter to import objects from the web server, as opposed to just local file-server (by specifying the TCLCL_IMPORT_DIRS environment variable).
      • Augmenting mash interpreter's "source" procedure to accept EITHER a URL or local filename
      • Augmenting the mash interpreter's "import" procedure to accept EITHER URLs or local filenames in the importTables it processes
      • Effected files: Tcl/tcl-import.tcl Tcl/Makefile.in Tcl/tcl-object.tcl Tcl/tcl-http.tcl
    • [YC] Sun May 31 13:18:56 PDT 1998
      • Added new file tcl-http.tcl. This file includes a class HTTP (and an object Http) that you can use to fetch URLs from the web. This class includes a user interface that is displayed when you are waiting for responses from the web.
    • [CR] Mon Apr 6 13:37:46 PDT 1998
      • Added some new features to otcldoc...
        • For objects which acquire default setting from the "-configuration" option of the Class definition, display the defaults in a section of the API page for the Object.
        • Added a section for "Proc Methods" on the API page for each Object for which procs are defined.
        • Added a page, linked from index.html, that lists all of the procs not associated with a particular Object.
        • Fixed "is_tcl_comment" proc to consider lines that start with '#', even if preceeded by whitespace, to be considered comments.
        • Since omitting classes from the class hierarchy could be misleading, now all the subclasses of a class are expanded at every place they occur, thus making the class hierarchy on index.html more accurate. To do this, simply commented out "set mark($c) 1" which was used to prevent a subclass from being outputted to index.html if it had already been outputted earlier on the page.
        • Timestamped all pages outputted.
        • Class definitions are processed w/out restricting their length to a single line.

    TclCL-1.0b5[OLD]/tclcl-1.6[NEW] Released on Tue Jan 27 10:22:59 PST 1998

    • [YC] Wed Mar 4 21:36:25 PST 1998
      • Added proc.invoke to otcl. This defines a "nameless" proc on a class and immediately executes it.
    • [CR] Tue Feb 17 17:12:39 PST 1998
      • In order to generate some online documentation for WidgetClasses, I added two new options to otcldoc.
        • -i is used to specify the name of the index file. Default = "index.html"
        • -c is used to specify the class being documented. Default = "Class"
      • Added a call to otcldoc using the new options to the Makefile so that doing "make doc" will now generate an additional index file by the name of "widgetindex.tcl"
    • [EA] Mon Feb 9 11:57:01 PST 1998
      • Added importLocation to tcl-expand.tcl. This file should contain a list of directories, one on every line. If it is in the local directory it overrides the TCLCL_IMPORT files. This makes overriding the import search path for specific tools a little easier.
    • [johnh]Fri Jan 23 13:36:08 PST 1998
      Improved the error message from SplitObject instproc warn-instvar.
    • [SM] Fri Jan 2 14:01:45 PST 1998
      • Enhanced the import command to look for modules and the importTable in the colon-separated path list specified by the TCLCL_IMPORT environment variable. If TCLCL_IMPORT is not set, then "." is assumed. This allows us to easily generate scripts outside of the mash build environment --- all you need is a mash interpreter, the tcl source tree (with importTable), and a pointer into it. Note: this is not how the package is distributed but rather how we use to generate scripts.
    • [SM] Fri Jan 2 00:16:32 PST 1998
      • Removed options_ hack that was causing aborts with ns and tcl7.6.
      • Removed Import enable proc since we now require import mechanism across all mash scripts (though scripts that use "Import enable" won't flag an error because this just declares an object now).
    • [YC] Wed Dec 31 17:47:56 PST 1997
      • Added two new methods to the Object class: proc.public and proc.private. These are the public and private variants of "proc".
      • Added macros PUBLIC, PRIVATE, PROC_PUBLIC and PROC_PRIVATE to tclcl-mappings.h. The first two are the public and private variants of INSTPROC, while the last two are replacements for PROC.
    • [YC] Fri Dec 26 18:09:04 PST 1997
      • Added history.tcl and word.tcl to embedded-tk (only for Tcl8.0)
    • [TLT] Wed Dec 24 20:18:48 GMT-8:00 1997
      • changed tcl-object.tcl: removed dependency to "cat" command since it does not work in win32; updated Import to work for classes that span multiple files
    • [EA] Tue Dec 23 01:05:11 PST 1997
      • Alphabetized index in otcldoc and added OTcl/C++ designation.
    • [YC] Mon Dec 22 15:22:42 PST 1997
      • fixed bug in the macro definition for PROC which caused it to not work when there were multiple methods with the same name.
      • fixed the error message that is generated when the constructor for an OTcl object fails, so as to display the actual error rather than a stock "class Foo: constructor failed" message.
    • [SM] Mon Dec 22 02:45:27 PST 1997
      • Added support for a simple, java-like import command to tclcl and merged it with vic and all of vic's modules. By default, import directives are ignored so as to not break existing apps. "import" behaves like the tcl source command except it includes the file only once (even when used multiple times) and the OTcl class name is specified instead of the actual file. To facilitate this, import assumes the existence of a file called importTable that contains the mappings (... maybe this should be built on demand). mash-1/mkImportTable creates this table from a list of tcl input files (should move this to tclcl).
    • [EA] Mon Dec 22 01:22:05 PST 1997
      • In otcldoc: identified C++, OTcl, and Split classes and documented all the files that the class is defined in.
    • [SM] Wed Dec 17 20:10:01 PST 1997
      • Made a bunch of changes to otcldoc to handle C++ method and class documentation. This is less automatic than the OTcl counterpart because it's harder to scan the input file. Thus, we sort of give up and rely upon structured comments. The model is to indicate a class or method def with the tag "" prepended to the equivalent syntax (within a C comment). Then the comment block following this line becomes the html desription. E.g.,
        	/*
        	 *  Class Foo -superclass Bar
        	 * Foo is the base class for all foo-like objects blah blah.
        	 *
        	 *  Foo public run {}
        	 * The run method causes a foo object to start running.
        	 */
        
      • Factored out Elan's cross-reference hook into a separate proc.
    • [EA] Mon Dec 15 23:04:11 PST 1997
      • Added class cross referencing to otcldoc.
    • [SM] Mon Dec 15 19:03:49 PST 1997
      • Added a script for transforming OTcl class definitions and structured comments into html documentation. The script, inspired by javadoc, is called otcldoc and resides in the top-level directory. It's still pretty rough and buggy, but shows promise.
    • [SM] Mon Dec 15 16:58:32 PST 1997
      • Added change to inherit options_ instance variable, if it exists, from parent from within new.
      • This allows us to easily use inheritence to distribute a configuration database across a hierarchicy of object instances.
    • [SM] Sat Dec 13 15:27:25 PST 1997
      • Re-ran autoconf to reflect recent change to configure.in.tcl (so .. is searched before /usr)
      • Added Object::public and Object::private methods as stand-ins for instproc.
    • [TLT] Tue Nov 25 00:05:16 GMT-8:00 1997
      • added few more convenient functions to Class Tcl.
    • [TLT] Sat Nov 15 17:17:54 PST 1997
      • fixed error output in SplitObject instproc unknown so that errorInfo will now show the full stack trace when $self cmd $args i.e. TclObject::command returns an error.
      • add bgerror proc that calls tkerror. bgerror is supposed to replace tkerror in tcl 8.
      • win32: changed makefile.win to use the right flags to link with dll versions of the VC runtime (msvrt.dll).
    • [TLT] Mon Oct 6 15:41:10 PDT 1997 Sun Nov 9 02:12:03 PST 1997
      • Add functions: evalObj(), objResult()s
      • change result() in tcl8 to return Tcl_GetStringResult(). This guarantee the right return value since interp->result may not be set right all the time.

    TclCL-1.0b4[OLD]/tclcl-1.5[NEW] Mon Oct 20 21:35:11 PDT 1997

    • [TLT] Mon Oct 6 15:41:10 PDT 1997
      • minor changes to get it to compile under windows for tcl/tk 8.0
    • [TLT]Sat Sep 27 03:15:27 PDT 1997
      • change Timer::msched to delete the timer handler if token_ is non-zero. This prevents extra dangling timers.
      • add EmbeddedTcl::load(interp) function for loading code into a different interpreter. Used for win32's tkConsole window.
    • [YC] Mon Sep 15 14:04:01 PDT 1997
      Incorporated Steve's suggestion to modify the INSTPROC and PROC macros to take only one argument, which is the name of both the C++ and Otcl methods.

    TclCL-1.0b3[OLD]/tclcl-1.4[NEW] Sep 9, 1997

    Snapshot for ns-2.0 release.
    • [johnh] Tue Sep 9 08:43:36 PDT 1997
      libTclCL.a to libtclcl.a.
    • [johnh] Mon Sep 8 17:44:19 PDT 1997
      General libTcl to TclCL changes. make tar, srctar make tclcl-*. Generates libTclCL.a, symlinked to libTcl.a for backwards compatibility.
    • [KVa] Mon Sep 8 16:27:28 PDT 1997
      • Added SplitObjectCompare to compare two objects by handle.
        It is useful to use this routine as a command to lsort to sort a list of SplitObjects (neeTclObjects) in increasing order, as
                lsort -command SplitObjectCompare {list}
        
    • [SM] Sun Aug 31 03:26:39 PDT 1997
      • Moved the call to TclObject::init from the tclcl-mappings macro into the TclClass object creator. The previous arrangement caused init to be called before TclObject::name_ was set, preventing the init method from calling the Otcl object (although it could get the name out of argv[0], the object was not in the hash table so TclObject::lookup wouldn't work for it). Since TclObject::init is now always called, I changed it to always return TCL_OK (typically the args are passed up to Object anyway).
    • [SM] Sat Aug 30 12:20:11 PDT 1997
      • Still trying to get constructor argument passing write. Removed an eval because catch does effectively the same thing (i.e., expands args so that it is properly interpreted as multiple args rather than a list). This is a bit subtle and failed only when null arguments (e.g., "") where present.
    • [SM] Fri Aug 29 23:57:41 PDT 1997
      • Changed reaction to the failure of the shadow object creation. Rather than raise a tcl error, the OTcl object is deleted and "new" returns an empty string. This allows the callee to react to a failed "new" call. If the problem is in the OTcl constructor rather than in the actual creation of the C++ shadow, the error is raised as before.
    • [SM] Fri Aug 29 22:58:54 PDT 1997
      • Handle expceptional cases more gracefully. Return TCL_ERROR if TclClass constructor fails to create object and add code to tcl-object.tcl to gracefully catch this condition.
      • Change base class name of otcl split object from TclObject to SplitObject and add a backward compat hook for TclObject.
    • [SM] Fri Aug 29 11:16:50 PDT 1997
      • Changed TclObject::unknown to invoke Tcl "error" procedure upon encountering an undefined method. Previously, this condition caused the process to exit, often making debugging difficult. Under Tk, "error" raises a pop-up that allows one to dump the call stack, which typically makes debugging much easier.
    • [TLT] Wed Aug 27 15:23:03 PDT 1997
      • add compat/win32.c for displayerr function and place holder for future common additions.
      • merged in with gnguyen's new makefile.vc (with patches)
      • add embedded-console for win32 console.
      • renamed the wndclass name to the more unique TclCLWSocket, so that rsdr will work; added some error checking during initialization.
    • [EA] Thu Aug 21 12:08:36 PDT 1997
      • Generated new configure scripts from new conf files.
      • Fixed Makefile.in to perform make depend correctly.
    • [TLT] Thu Aug 7 13:04:21 PDT 1997
      Changes to make libTcl compile under windows and prepare for transition of the package to tclcl, pronounced Tickle-C-L. It stands for "Tcl Class". Motivation for the change: (1) hard to difference between Tcl and tcl verbally, (2) more importantly, under an OS with case-insensitive filenames like win32, "tcl.h" conflicts with "Tcl.h".
      • moved contents of Tcl.h to tclcl.h. Please make all future changes to tclcl.h. Old "Tcl.h" is retained but it only includes "tclcl.h". Eventually we should get rid of "Tcl.h" completely. All includes in the package has been updated to use "tclcl.h".
      • added compat/gettod.c for gettimeofday function in win32
      • added tclcl-config.h for conditional defines in win32
      • added makefile.vc for windows. do 'nmake -f makefile.vc' to compile to tclcl.lib under windows. (we should change libTcl.* to libtclcl.* in Makefile.in some time later).
    • [YC] Tue Aug 5 09:49:56 PDT 1997
      Added macros to the Tcl library to allow automatic definitions of the mappings between TclObjects and OTcl classes
      • The OTCL_MAPPINGS macro defines the mapping between a TclObject class and a corresponding OTcl class. With this definition, the manner in which arguments are passed to the constructor for the object has changed. Instead of parsing the args in subclass_of_TclClass::create, the object is now created with an empty constructor (i.e. subclass_of_TclObject() ). Once the object has been successfully constructed, a new virtual method init(argc, argv) is invoked on that object. The argv array contains some dummy args for argv[0] and argv[1] (whatever were originally passed to some of the elements of argv for the TclClass::create method). The actual args start at argv[2]. Note that this is different from what used to happen for the create method. I made this change so that the structure of the argv array is consistent with the structure that is passed to the command(argc, argv) method. (Please note that this does *not* break any previous code that used the original TclClass's create mechanism to create TclObjects.)
      • INSTPROC defines a mapping between a C++ method and an OTcl method. This mechanism is cleaner than the original single huge command() method. It ensures that all C++ methods are visible thru "$object info instcommands", and allows "$self next" to work even for these C++ methods! Use the argument parsing functions described below to parse out the argv array into individual arguments
      • BEGIN_PARSE_ARGS(argc, argv): start parsing the arguments array
      • ARG(var): parse the next argument into the variable 'var'. Currently, the type of 'var' can be one of int, unsigned int, double, const char *, TclObject *.
      • ARG_DEFAULT(var, default): same as ARG, except you can specify a default value to use if this arg has not been specified in the cmdline
      • END_PARSE_ARGS: clean up at the end of parsing. Check for extra arguments that might have been passed in, and output an error if there are any. Even if your function does not expect any arguments, use BEGIN_PARSE_ARGS and END_PARSE_ARGS at the start of your function to ensure that you check for any spurious args that have been passed into this function
      • Example:
            class TestClass : public TclObject {
            public:
                TestClass();  /* must have this constructor */
        	virtual int init(int argc, const char * const *argv) {
        	    int myarg;
        
        	    BEGIN_PARSE_ARGS(argc, argv);
        	    ARG(my_arg);
        	    END_PARSE_ARGS;
        
        	    /* ... use 'myarg' in the initialization of this object */
        
        	}
        
        	int func1(int argc, const char * const *argv) {
        	    char *name;
        	    BEGIN_PARSE_ARGS(argc, argv);
        	    ARG(name);
        	    END_PARSE_ARGS;	    
        
        	    // ...
        	}
        
        	int func2(int argc, const char * const *argv) {
        	    BEGIN_PARSE_ARGS(argc, argv);
        	    END_PARSE_ARGS;
        	    // ....
        	}
            }
        
        
            OTCL_MAPPINGS(TestClass, "TestClass") {
                INSTPROC(func1, "func1");
        	INSTPROC(func2, "func2");
            }
          

    libTcl-1.0b2[OLD]/tclcl-1.3[NEW] Jul 25 1997

    Snapshot for ns-2.0b17 release.
    • [EA] Wed Jul 23 16:01:55 PDT 1997
      Fixed problem in Makefile.in which caused the embedded files to not build correctly. Regenerated configure script.
    • [GN] Mon Jul 21 15:12:43 PDT 1997
      Add tracedvar.{h,cc} to implement a tracing mechanism for variables. Each "traced" variables should be initialized with its string name and a TclObject to callback when its value is changed. The callback happens through the TclObject::trace(TracedVar*) method.
    • [johnh] Thu Jul 3 15:54:53 PDT 1997
      bug in InstVarBool (preventing set foo_ 1 from working if foo_ was created with bind_bool) fixed.
    • [YC] Mon Jun 9 19:27:19 PDT 1997
      Moved the tkvar stuff into Tcl/tcl-object.tcl. Arranged the delete proc to invoke "$object delete_tkvar" to clean up any global tk variables that are associated with this variable

    libTcl-1.0b1[OLD]/tclcl-1.2[NEW] Tue Jun 3 15:42:41 PDT 1997

    • [KVa] Tue Jun 3 11:04:11 PDT 1997
      Incorrect memory free patterns in Tcl.cc, cause the occasional leak, reported by purify. In brief, array storage allocated as ``var = new DataType[nelem]'' should be freed as ``delete[] var''.
    • [EA] Thu Apr 17 21:54:00 PDT 1997
      Fixed Makefile.in so that you can do a make depend.
    • [VP] Wed Apr 16 02:44:32 PDT 1997
      Added new bind routines that allow establishing a linkage between OTcl variables and functions that handle reads to and writes from the corresponding C++ variable. The functions can then be instrumented as desired, for example to log all changes in the value of the C++ variables.
    • [KVa] Mon Apr 7 15:45:59 PDT 1997
      Fixed tcl2c++.c to skip over multi-line comments correctly.
      proc tkerror will also print its argument string when invoked.
    • [SM] Thu Mar 6 00:15:55 PDT 1997
      Changed Tk_* event handling calls to Tcl_* since Tcl now handles the event loop and we don't want to inlclude tk.h if we don't have to.

    libTcl-1.0a6[OLD]/tclcl-1.1[NEW] Feb 3 1997

    • [SM] Mon Jan 31 18:59:59 PDT 1997
      Fixed up rate variables so that they are not evaluated in global context. This change allows us to wrapt OTcl instance variables in a rate-variable.

    libTcl-1.0a5 Tue Dec 31 18:01:20 PST 1996

    Snapshot to VINT collaborators.
    • [SM] Re-arranged configure.in to use shared conf structure.

    libTcl-1.0a3[OLD]/tclcl-1.0[NEW] Sun Nov 10 11:06:46 PST 1996

    Snapshot to VINT collaborators.
    • [SM] Moved C++ shadow object management into TclObject proper. This allows one to now transparently override the init method of built-in C++ classes. Previously, this would cause the C++ shadow object to not be created (unless explicited wired in).
    • [SM] Switched to model where TclClass-defined classes have structured names with the hierarchy delineated by slashes, e.g., a side effect of creating class A/B/C is to create classes A and A/B.
    • [SM] Enhanced tcl2c++ to use stdin if no file arguments appear on the command line.
    • [SM] Fixed TclObject::init-instvar to search object hierarchy for default value of each C++/OTcl instance variable (rather than just in the respective class).
    • [SM] Fixed bug that caused init_instvar to be called before virtual methods were completely filled in. This caused the initial value of bandwidths and times to be misinterpreted as doubles.
    tclcl-1.20/compat/gettod.c0000664000076400007660000000537106374553301014347 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /* adapted from tcl: compat/gettod.c */ /* * gettod.c -- * * This file provides the gettimeofday function on systems * that only have the System V ftime function. * * Copyright (c) 1995 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) gettod.c 1.2 96/02/15 12:08:26 */ #ifdef WIN32 #include #include "../tclcl-config.h" #include int gettimeofday(struct timeval *tp, struct timezone *z) { if (tp) { struct _timeb t; _ftime(&t); tp->tv_sec = t.time; tp->tv_usec = (long)t. millitm * 1000; } if (z) { TIME_ZONE_INFORMATION tz; GetTimeZoneInformation(&tz); z->tz_minuteswest = tz.Bias ; z->tz_dsttime = tz.StandardBias != tz.Bias; } return 0; } #endif tclcl-1.20/compat/win32.c0000664000076400007660000000600706401150432014005 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifdef WIN32 #include /* about the same functionality as perror */ void displayErr(const char *prefix) { LPVOID lpFinal; LPVOID lpMsgBuf[2]; DWORD dwError = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(0, SUBLANG_ENGLISH_US), (LPTSTR) &lpMsgBuf[1], 0, NULL ); lpMsgBuf[0] = (LPVOID)prefix; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY, "%1 : %2", 0, MAKELANGID(0, SUBLANG_ENGLISH_US), (LPTSTR) &lpFinal, 0, (va_list*)lpMsgBuf ); MessageBox( NULL, lpFinal, "Error", MB_OK | MB_ICONINFORMATION ); LocalFree( (HLOCAL)lpMsgBuf ); LocalFree( (HLOCAL)lpFinal ); } #endif tclcl-1.20/conf/configure.in.audio0000664000076400007660000000647006553565041015774 0ustar tomhnsnam# lots of hairy special cases for detecting which audio device # support to compile in # V_LIB_AUDIO="" V_INCLUDE_AUDIO="" V_INCLUDE_GSM="" V_OBJ_AUDIO="" AC_ARG_WITH(gsm, --with-gsm=path specify a pathname for gsm, d=$withval, d="") if test "$d" != "" ; then if test ! -d $d ; then echo "'$d' is not a directory" exit 1 fi libgsm=$d/lib/libgsm.a if test ! -r $libgsm ; then echo "can't find libgsm.a in $d/lib" exit 1 fi V_INCLUDE_GSM="-I$d/inc" if test ! -r $d/inc/private.h ; then echo "can't find gsm includes in $d/inc" exit 1 fi else echo "checking for libgsm.a" libgsm=FAIL places="\ $PWD/../gsm-1.0-pl10 \ $PWD/../gsm-1.0 \ $PWD/../gsm-1.0-pl7 \ $PWD/../gsm \ /usr/src/local/gsm-1.0-pl10 \ /usr/src/local/gsm-1.0 \ /usr/src/local/gsm-1.0-pl7 \ /usr/src/local/gsm \ /usr/opt/gsm" for dir in $places; do if test -r $dir/lib/libgsm.a -a -r $dir/inc/private.h ; then libgsm=$dir/lib/libgsm.a V_INCLUDE_GSM="-I$dir/inc" break fi done if test "$libgsm" = FAIL; then echo "configure: can't find gsm library ... you can get it at" echo " http://www.cs.tu-berlin.de/~jutta/toast.html" exit 1 fi fi V_LIB_AUDIO="$V_LIB_AUDIO $libgsm" AC_ARG_WITH(af, --with-af=path specify a pathname for AudioFile, d=$withval, d="") if test "$d" != "" ; then if test ! -d $d ; then echo "'$d' is not a directory" exit 1 fi if test ! -r $d/AF/lib/AF/libAF.a ; then echo "can't find libAF.a in $d/AF/lib/AF" exit 1 fi if test ! -r $d/AF/lib/AF/AFlib.h ; then echo "can't find AFlib.h in $d/AF/lib/AF" exit 1 fi V_LIB="$V_LIB $d/AF/lib/AF/libAF.a" V_INCLUDE="$V_INCLUDE -I$d/AF/lib -I$d/AF" V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-af.o" else echo "checking for AudioFile" places="../AudioFile-3.1 \ ../AudioFile-3 \ ../AudioFile \ /usr/src/local/AudioFile-3.1 \ /usr/src/local/AudioFile-3 \ /usr/src/local/AudioFile" V_AF=FAIL for d in $places; do if test -f $d/AF/lib/AF/libAF.a -a -f $d/AF/lib/AF/AFlib.h; then V_LIB="$V_LIB $d/AF/lib/AF/libAF.a" V_INCLUDE="$V_INCLUDE -I$d/AF/lib -I$d/AF" V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-af.o" V_AF=$d break fi done if test $V_AF = FAIL ; then echo "can't find AudioFile - vat AF support won't be compiled" fi fi AC_TEST_CPP([#include ], x=audio/audio-sun.o, x="") V_OBJ_AUDIO="$V_OBJ_AUDIO $x" AC_TEST_CPP([#include ], x=audio/audio-sun.o, x="") V_OBJ_AUDIO="$V_OBJ_AUDIO $x" case "$target" in *-sgi-irix*) V_LIB_AUDIO="$V_LIB_AUDIO -laudio" V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-sgi.o" ;; *-*-bsdi1*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-pc.o" ;; *-*-bsdi2.0*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-pc.o" ;; *-*-bsdi*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-voxware.o" ;; *-*-freebsd*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-freebsd.o" ;; *-*-sco*) V_DEFINE="$V_DEFINE -DSIGARGS=int -Dsco" if test $CC != gcc ; then CC="cc -Dinline=" CXX="CC +.cc" fi V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-voxware.o" V_BROKEN_OBJ= ;; *-*-hpux*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-hp.o" ;; *-*-aix3*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-ibm.o" ;; *-*-aix4*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-ibm.o" ;; *-*-linux*) V_OBJ_AUDIO="$V_OBJ_AUDIO audio/audio-voxware.o" V_BROKEN_OBJ= ;; esac AC_SUBST(V_LIB_AUDIO) AC_SUBST(V_INCLUDE_AUDIO) AC_SUBST(V_OBJ_AUDIO) AC_SUBST(V_INCLUDE_GSM) tclcl-1.20/conf/configure.in.debugopts0000664000076400007660000000076106546214756016672 0ustar tomhnsnamdnl autoconf options for random debugging dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.debugopts,v 1.4 1998/06/30 17:01:34 heideman Exp $ (LBL) if test x$default_classinstvar = x then default_classinstvar=no fi AC_ARG_ENABLE(tclcl-classinstvar,[-enable-tclcl-classinstvar assume classinstvars are present in tclcl],[enable_classinstvar=$enableval],[enable_classinstvar=$default_classinstvar]) if test "$enable_classinstvar" = "yes"; then V_DEFINE="-DTCLCL_CLASSINSTVAR $V_DEFINE" fi tclcl-1.20/conf/configure.in.des0000664000076400007660000000115206464517132015435 0ustar tomhnsnamdnl 'autoconf' input file to look for des library dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.des,v 1.2 1998/01/31 03:45:30 hodes Exp $ (LBL) AC_ARG_ENABLE(des, --enable-des enable desCore compilation, , enable_des="yes") V_OBJ_CRYPT="" if test "$enable_des" != "no" ; then places="desCore.a \ /usr/src/local/desCore/desCore.a \ ../desCore/desCore.a" for f in $places; do if test -f $f ; then V_LIB="$V_LIB $f" V_OBJ_CRYPT="$V_OBJ_CRYPT net/crypt-des.o" break fi done fi tclcl-1.20/conf/configure.in.dmalloc0000664000076400007660000000170306577521012016274 0ustar tomhnsnamdnl autoconf rules to find dmalloc dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.dmalloc,v 1.5 1998/09/15 17:21:14 heideman Exp $ (USC/ISI) AC_ARG_WITH(dmalloc, --with-dmalloc=path specify a pathname for the dmalloc debugger (path=no disables the dmalloc), d="$withval", d="UNDEF") DMALLOC_VERS=3.2.1 DMALLOC_PATH="$PWD/../dmalloc \ $PWD/../dmalloc-$DMALLOC_VERS \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/contrib/include \ /usr/local/include \ /usr/include \ " DMALLOC_PATH_D="$d $d/lib $d/include" if test "x$d" = xUNDEF; then AC_MSG_CHECKING(dmalloc) AC_MSG_RESULT([not requested with --with-dmalloc]) else NS_BEGIN_PACKAGE(dmalloc) NS_CHECK_LIB_PATH(dmalloc,$DMALLOC_PATH,$d,$DMALLOC_PATH_D,V_LIB_DMALLOC,dmalloc) NS_CHECK_HEADER_PATH(dmalloc.h,$DMALLOC_PATH,$d,$DMALLOC_PATH_D,V_HEADER_DMALLOC,dmalloc) NS_CHECK_HEADER_PATH(return.h,$DMALLOC_PATH,$d,$DMALLOC_PATH_D,V_HEADER_RETURN,dmalloc) NS_END_PACKAGE(dmalloc,no) fi tclcl-1.20/conf/configure.in.dynamic0000644000076400007660000002416711440526615016313 0ustar tomhnsnam #-------------------------------------------------------------------- # The statements below define a collection of symbols related to # dynamic loading and shared libraries: # # DL_LIBS - Library file(s) to include in tclsh and other base # applications in order for the "load" command to work. # DL_LD_FLAGS - Flags to pass to the compiler when linking object # files into an executable application binary such # as tclsh. # DL_LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib" # that tell the run-time dynamic linker where to look # for shared libraries such as libtcl.so. Depends on # the variable SHLIB_RUNTIME_DIR in the Makefile. # SHLIB_CFLAGS - Flags to pass to cc when compiling the components # of a shared library (may request position-independent # code, among other things). # SHLIB_LD - Base command to use for combining object files # into a shared library. # SHLIB_LD_LIBS - Dependent libraries for the linker to scan when # creating shared libraries. This symbol typically # goes at the end of the "ld" commands that build # shared libraries. The value of the symbol is # "$V_LIB" if all of the dependent libraries should # be specified when creating a shared library. If # dependent libraries should not be specified (as on # SunOS 4.x, where they cause the link to fail, or in # general if Tcl and Tk aren't themselves shared # libraries), then this symbol has an empty string # as its value. # SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable # extensions. An empty string means we don't know how # to use shared libraries on this platform. #-------------------------------------------------------------------- ### XXX: AC_ARG_ENABLE(shlib, --enable-shlib enable Makefile flags ###for building shared libraries, , enable_shlib="no") AC_ARG_ENABLE(shlib, --enable-shlib enable Makefile targets for mash shared libraries, , enable_shlib="no") # Step 1: set the variable "system" to hold the name and version number # for the system. This can usually be done via the "uname" command, but # there are a few systems, like Next, where this doesn't work. AC_MSG_CHECKING([system version (for dynamic loading)]) if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` else system=`uname -s`-`uname -r` if test "$?" -ne 0 ; then AC_MSG_RESULT([unknown (can't find uname command)]) system=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 system=MP-RAS-`awk '{print $3}' /etc/.relid` fi if test "`uname -s`" = "AIX" ; then system=AIX-`uname -v`.`uname -r` fi AC_MSG_RESULT($system) fi fi # Step 2: check for existence of -ldl library. This is needed because # Linux can use either -ldl or -ldld for dynamic loading. AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) if test -z "$V_TCLSH" then local_TCLSH=tclsh else local_TCLSH=$V_TCLSH fi # Step 3: set configuration options based on system name and version. case $system in AIX-*) enable_dl="no" ;; BSD/OS-2.1*|BSD/OS-3*) SHLIB_CFLAGS="" SHLIB_LD="shlicc -r" SHLIB_LD_LIBS="$V_LIB" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; Darwin-5.*|Darwin-6.*) SHLIB_CFLAGS="-fno-common -fPIC -pipe" SHLIB_LD="cc -dynamiclib -flat_namespace -undefined suppress" SHLIB_SUFFIX=".dylib" DL_LIBS="" SHLD_FLAGS="-Wl,-bind_at_load -Wl,-multiply_defined -Wl,suppress" ;; Darwin-7.*|Darwin-8.*|Darwin-9.*|Darwin-10.*) # Remove `-mcpu=7450' for G5 (PPC970) optimization: SHLIB_CFLAGS="-fno-common -fPIC -pipe" SHLIB_LD="cc -dynamiclib -flat_namespace -undefined suppress" SHLIB_SUFFIX=".dylib" DL_LIBS="" SHLD_FLAGS="-Wl,-bind_at_load -Wl,-multiply_defined -Wl,suppress" ;; dgux*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) AC_CHECK_LIB(dld, shl_load, dl_ok=yes, dl_ok=no) if test "$dl_ok" = yes; then SHLIB_CFLAGS="+z" SHLIB_LD="ld -b" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".sl" DL_LIBS="-ldld" DL_LD_FLAGS="-Wl,-E" DL_LD_SEARCH_FLAGS='-Wl,+b,${SHLIB_RUNTIME_DIR}:.' fi ;; IRIX-4.*) SHLIB_CFLAGS="-G 0" SHLIB_SUFFIX=".a" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | $local_TCLSH -r -G 0" SHLIB_LD_LIBS="$V_LIB" DL_LIBS="" DL_LD_FLAGS="-Wl,-D,08000000" DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}' ;; IRIX-5.*|IRIX-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -shared -rdata_shared" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}' ;; IRIX64-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -32 -shared -rdata_shared -rpath /usr/local/lib" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}' ;; Linux*) SHLIB_CFLAGS="-fPIC" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" if test "$have_dl" = yes; then SHLIB_LD="${CC} -shared" DL_LIBS="-ldl" DL_LD_FLAGS="-rdynamic" DL_LD_SEARCH_FLAGS="" else AC_CHECK_HEADER(dld.h, [ SHLIB_LD="ld -shared" DL_LIBS="-ldld" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS=""]) fi ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; MP-RAS-*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="-Wl,-Bexport" DL_LD_SEARCH_FLAGS="" ;; NetBSD-*|FreeBSD-*|OpenBSD-*) # Not available on all versions: check for include file. AC_CHECK_HEADER(dlfcn.h, [ SHLIB_CFLAGS="-fpic" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ], [ SHLIB_CFLAGS="" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | $local_TCLSH -r" SHLIB_LD_LIBS='$V_LIB' SHLIB_SUFFIX=".a" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}' ]) ;; NEXTSTEP-*) SHLIB_CFLAGS="" SHLIB_LD="cc -nostdlib -r" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; 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_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; OSF1-1.*) # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 SHLIB_CFLAGS="-fpic" SHLIB_LD="ld -shared" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" SHLIB_LD='ld -shared -expect_unresolved "*"' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}' ;; RISCos-*) SHLIB_CFLAGS="-G 0" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | $local_TCLSH -r -G 0" SHLIB_LD_LIBS='$V_LIB' SHLIB_SUFFIX=".a" DL_LIBS="" DL_LD_FLAGS="-Wl,-D,08000000" DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}' ;; 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. SHLIB_CFLAGS="-Kpic -belf" SHLIB_LD="ld -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="" DL_LD_FLAGS="-belf -Wl,-Bexport" DL_LD_SEARCH_FLAGS="" ;; SINIX*5.4*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS="" ;; SunOS-4*) SHLIB_CFLAGS="-PIC" SHLIB_LD="ld" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}' ;; SunOS-5*) SHLIB_CFLAGS="-fpic" SHLIB_LD="/usr/ccs/bin/ld -G -z text" # Note: need the LIBS below, otherwise Tk won't find Tcl's # symbols when dynamically loaded into tclsh. SHLIB_LD_LIBS='$V_LIB' SHLIB_SUFFIX=".so" DL_LIBS="-ldl" DL_LD_FLAGS="" DL_LD_SEARCH_FLAGS='-R ${SHLIB_RUNTIME_DIR}' ;; ULTRIX-4.*) SHLIB_CFLAGS="-G 0" SHLIB_SUFFIX=".a" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | $local_TCLSH -r -G 0" SHLIB_LD_LIBS='$V_LIB' DL_LIBS="" DL_LD_FLAGS="-Wl,-D,08000000" DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}' ;; UNIX_SV*) SHLIB_CFLAGS="-KPIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" 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. hold_ldflags=$LDFLAGS AC_MSG_CHECKING(for ld accepts -Bexport flag) LDFLAGS="${LDFLAGS} -Wl,-Bexport" AC_TRY_LINK(, [int i;], found=yes, found=no) LDFLAGS=$hold_ldflags AC_MSG_RESULT($found) if test $found = yes; then SH_LD_FLAGS="-Wl,-Bexport" else SH_LD_FLAGS="" fi SH_LD_SEARCH_FLAGS="" ;; esac # Step 4: disable dynamic loading if requested via a command-line switch. # #XXX:if test $enable_shlib = "no" ; then # echo "Disabling dynamic loading and shared libraries" # SHLIB_CFLAGS="" # SHLIB_LD="" # SHLIB_SUFFIX="" # DL_LIBS="" # DL_LD_FLAGS="" # DL_LD_SEARCH_FLAGS="" #fi # 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. ####XXX:if test "enable_shlib" != "no" ; then if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then case $system in AIX-*) ;; BSD/OS*) ;; IRIX*) ;; NetBSD-*|FreeBSD-*|OpenBSD-*) ;; RISCos-*) ;; ULTRIX-4.*) ;; *) SHLIB_CFLAGS="-fPIC" ;; esac fi ####fi if test "$enable_shlib" != "no" ; then PKG_SHLIB_CFLAGS=$SHLIB_CFLAGS else PKG_SHLIB_CFLAGS="" fi AC_SUBST(DL_LIBS) AC_SUBST(DL_LD_FLAGS) AC_SUBST(DL_LD_SEARCH_FLAGS) AC_SUBST(SHLIB_CFLAGS) AC_SUBST(SHLIB_LD) AC_SUBST(SHLIB_LD_LIBS) AC_SUBST(SHLIB_SUFFIX) AC_SUBST(PKG_SHLIB_CFLAGS) tclcl-1.20/conf/configure.in.fns0000664000076400007660000001424310307470042015442 0ustar tomhnsnam dnl dnl autoconf rules to find things in general dnl dnl dnl General approach to using these macros: dnl dnl bracket a group of them that must succeed or fail together dnl with NS_BEGIN_PACKAGE(s)/NS_END_PACKAGE(s). dnl In between put NS_CHECK_{LIB,HEADER}_PATH(). dnl Custom checks can call NS_PACKAGE_NOT_COMPLETE(s) if something's wrong. dnl dnl See configure.in.dmalloc for an example. dnl dnl These macros add their stuff to V_LIBS, V_INCLUDES, V_DEFINES. dnl You should add them to your Makefile.in dnl You also need to put NS_FNS_TAIL in your configure.in dnl (typically just before including configure.in.tail). dnl dnl dnl dnl NS_BEGIN_PACKAGE(NAME) dnl dnl (Internally, _UNDERWAY says that we found some part of it, dnl _COMPLETE says we've got all of it.) dnl AC_DEFUN(NS_BEGIN_PACKAGE, [ NS_PACKAGE_[$1]_UNDERWAY=false NS_PACKAGE_[$1]_COMPLETE=true ]) dnl dnl If a test fails, call NS_PACKAGE_NOT_COMPLETE(NAME) to cause NS_END_PACKAGE to dnl eventually die. dnl AC_DEFUN(NS_PACKAGE_NOT_COMPLETE, [ NS_PACKAGE_[$1]_COMPLETE=false ]) dnl dnl NS_END_PACKAGE(NAME,REQUIRED) dnl REQUIRED should be "yes" or "no" dnl AC_DEFUN(NS_END_PACKAGE, [ NS_PACKAGE_[$1]_VALID=false if $NS_PACKAGE_[$1]_UNDERWAY; then if $NS_PACKAGE_[$1]_COMPLETE; then : [All components of $1 found.] NS_PACKAGE_[$1]_VALID=true else AC_MSG_ERROR([Installation of $1 seems incomplete or can't be found automatically. Please correct the problem by telling configure where $1 is using the argument --with-$1=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-$1=no.]) fi fi if test "x$2" = xyes; then if $NS_PACKAGE_[$1]_VALID; then : else AC_MSG_ERROR([$1 is required but could not be completely found. Please correct the problem by telling configure where $1 is using the argument --with-$1=/path/to/package, or the package is not required, disable it with --with-$1=no.]) fi fi ]) dnl dnl NS_CHECK_LIB_PATH(LIBRARY,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE) dnl LIBRARY should be with a dotted version number but without a .a extension dnl PATH is whitespace separated dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH dnl SUGGESTION_PATH dnl sets VARIABLE to be the include stuff dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no" dnl dnl Automatically adds it to V_LIBS and adds a -DHAVE_LIBLIBRARY to V_DEFINES dnl AC_DEFUN(NS_CHECK_LIB_PATH, [ AC_MSG_CHECKING([for lib$1]) if test "x$3" = "xno"; then : disable library $5=FAIL NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else places="$2" if test "x$3" != "x" -a "x$3" != xyes; then if test ! -d $3; then AC_MSG_ERROR($3 is not a directory) fi places="$4" fi $5="" dnl full_lib_name is libtcl7.6 full_lib_name="$1" dnl simple_lib_name is libtcl76 simple_lib_name=`echo $full_lib_name | sed -e 's/\.//'` dnl other_simple_lib_name is libtcl7_6 other_simple_lib_name=`echo $full_lib_name | sed -e 's/\./_/'` dnl simpler_lib_name is libtcl simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'` double_break=false for dir in $places; do for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name do if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then $5="-L$dir -l$file" double_break=true break fi done if $double_break; then break fi done if test "FAIL$[$5]" = "FAIL" ; then NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else if test "$solaris"; then $5="-R$dir $[$5]" fi changequote(, )dnl ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` changequote([, ])dnl AC_DEFINE_UNQUOTED($ac_tr_lib) dnl add to list V_LIBS="$[$5] $V_LIBS" V_DEFINES="-D$ac_tr_lib $V_DEFINES" NS_PACKAGE_[$6]_UNDERWAY=true AC_MSG_RESULT($[$5]) fi fi ]) dnl dnl NS_CHECK_HEADER_PATH(HEADER,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE) dnl HEADER should be file with an extension dnl PATH is whitespace separated dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH dnl SUGGESTION_PATH dnl sets VARIABLE to be the include stuff dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no" dnl dnl Automatically adds it to V_INCLUDES and adds a -DHAVE_HEADER to V_DEFINES dnl AC_DEFUN(NS_CHECK_HEADER_PATH, [ AC_MSG_CHECKING([for $1]) if test "x$3" = "xno"; then : disable header $5=FAIL NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else places="$2" if test "x$3" != "x" -a "x$3" != xyes; then if test ! -d $3; then AC_MSG_ERROR($3 is not a directory) fi places="$4" fi $5="" for dir in $places; do if test -r $dir/$1; then $5="-I$dir" break fi done if test "FAIL$[$5]" = "FAIL" ; then NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else changequote(, )dnl ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` changequote([, ])dnl AC_DEFINE_UNQUOTED($ac_tr_hdr) V_INCLUDES="$[$5] $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_[$6]_UNDERWAY=true AC_MSG_RESULT($[$5]) fi fi ]) dnl dnl NS_CHECK_ANY_PATH(ANY,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE) dnl ANY shoudl be the file dnl PATH is whitespace separated dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH dnl SUGGESTION_PATH dnl sets VARIABLE to be the include stuff dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no" dnl AC_DEFUN(NS_CHECK_ANY_PATH, [ AC_MSG_CHECKING([for $1]) if test "x$3" = "xno"; then : disable header $5=FAIL NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else places="$2" if test "x$3" != "x" -a "x$3" != xyes; then if test ! -d $3; then AC_MSG_ERROR($3 is not a directory) fi places="$4" fi $5="" for dir in $places; do if test -r $dir/$1; then $5="$dir" break fi done if test "FAIL$[$5]" = "FAIL" ; then NS_PACKAGE_NOT_COMPLETE($6) AC_MSG_RESULT(no) else NS_PACKAGE_[$6]_UNDERWAY=true AC_MSG_RESULT($[$5]) fi fi ]) dnl dnl Final stuff for fns dnl AC_DEFUN(NS_FNS_TAIL, [ AC_SUBST(V_INCLUDES) AC_SUBST(V_LIBS) AC_SUBST(V_DEFINES) dnl AC_SUBST(V_OBJS) ]) tclcl-1.20/conf/configure.in.head0000664000076400007660000001201411226532040015545 0ustar tomhnsnamdnl standard setup for vic/vat/etc. autoconf scripts. dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.head,v 1.26 2009/07/13 04:12:16 tom_henderson Exp $ (LBL) AC_ARG_WITH(defaultoptions, -with-defaultoptions[=filename] use as default options file, , with_defaultoptions=".configure") if test "$with_defaultoptions" = "yes" ; then with_defaultoptions=".configure" elif test "$with_defaultoptions" = "no" ; then with_defaultoptions="" fi if test -n "$with_defaultoptions" ; then if test -f "$with_defaultoptions" ; then read arglist < $with_defaultoptions if test -n "$arglist" ; then arguments="$0 $arglist $* --without-defaultoptions" echo "Restarting: $arguments" exec $arguments fi else if test "$with_defaultoptions" = ".configure" ; then echo No .configure file found in current directory echo Continuing with default options... else echo Cannot find file $with_defaultoptions echo Aborting configure... exit 1 fi fi fi AC_CANONICAL_SYSTEM AC_PROG_CC AC_PROG_CXX AC_STDC_HEADERS AC_HAVE_HEADERS(string.h) V_INCLUDE="" V_LIB="" V_OBJ="" V_BROKEN_OBJ="strtol.o strtoul.o" V_SHELL="" V_TARCMD="tar cfh" V_SIGRET="void" AC_CHECK_LIB(Xbsd, main, [V_LIB="$V_LIB -lXbsd"]) AC_CHECK_LIB(socket, socket, [V_LIB="$V_LIB -lsocket"]) AC_CHECK_LIB(nsl, gethostbyname, [V_LIB="$V_LIB -lnsl"]) AC_CHECK_LIB(intl, dcgettext, [V_LIB="$V_LIB -lintl"]) AC_CHECK_LIB(dnet_stub, getnodebyname, [V_LIB="$V_LIB -ldnet_stub"]) V_TAR_EXTRA="" V_DEFINE="" V_RANLIB=ranlib V_AR="ar cr" #XXX V_SHM="-DUSE_SHM" AC_ARG_ENABLE(release, --enable-release do a release build, , enable_release="no") AC_ARG_ENABLE(debug, --enable-debug build with debugging enabled, , enable_debug="no") AC_ARG_ENABLE(devel, --enable-devel do a development build, , enable_devel="no") if test "$enable_devel" = "yes" ; then enable_debug="yes" fi if test -f .devel -o "$enable_devel" = "yes"; then OonS="" else if test "$CC" = gcc ; then AC_MSG_CHECKING(that $CXX can handle -O2) AC_TRY_COMPILE(, #if __GNUC__ < 2 || __GNUC_MINOR__ < 8 /* gcc */ error #endif #if __GNUC_MINOR__ < 92 /* egcs */ int error; #endif ,AC_MSG_RESULT(yes) OonS="-O2", # Optimize on Steroids AC_MSG_RESULT(no)) fi fi if test "$enable_debug" = "yes" ; then V_CCOPT="-g" if test "$CC" = gcc ; then V_CCOPT="$V_CCOPT -Wall -Wno-write-strings -Wno-parentheses -Werror" V_DEFINE="$V_DEFINE -fsigned-char -fno-inline" fi else V_CCOPT="$OonS" V_DEFINE="$V_DEFINE -DNDEBUG" if test "$CC" = gcc ; then V_CCOPT="$V_CCOPT -Wall -Wno-write-strings -Wno-parentheses" fi fi # XXX Some stupid sh on solaris does not set PWD correctly, i.e., # after chdir $PWD remains at the parent directory. :( # We'll just do this every time. Doesn't hurt anyway. PWD=`pwd` solaris="" if test `echo "$target_os" | sed 's/\..*//'` = solaris2 ; then solaris="yes" fi #places="Tcl \ # /usr/src/local/Tcl \ # ../../Tcl \ # ../Tcl" #for d in $places; do # if test -f $d/Tcl.h ; then # V_LIB="$V_LIB $d/libTcl.a" # V_INCLUDE="$V_INCLUDE -I$d" # break # fi #done # we now default to non-static linking, although if the "magic" file # .devel exists in the current directory, we try for a static link # under the assumption we are trying to produce re-distributable # binaries. # # Yatin: Moved this code here from configure.in.tail, since the mash # configure.in file needs to set this variable appropriately before invoking # configure.in.tail and the presence of the .devel file can mess things up for # the linux release build # AC_ARG_ENABLE(static, --enable-static enable/disable static building, , enable_static="") if test -f .devel -o "$enable_devel" = "yes"; then echo -n "Development version: considering static" dnl default to static on in development versions if test "$enable_static" != no; then echo ", and static enabled" V_STATIC="-static" else echo ", but static disabled anyway" fi else V_STATIC="" fi # Checking validity of STL AC_MSG_CHECKING(standard STL is available) AC_LANG_SAVE AC_LANG_CPLUSPLUS enable_stl="no" AC_TRY_COMPILE( #include #include template class tlist : public list <_T> {}; , return 0; ,AC_MSG_RESULT(yes) enable_stl="yes", AC_MSG_RESULT(no)) AC_LANG_RESTORE # This can be extended to support compilation-time module selection V_STLOBJ="" V_LSSCRIPT="" if test "$enable_stl" = "yes" ; then #V_STLOBJ="linkstate/ls.o linkstate/rtProtoLS.o" #V_LSSCRIPT="source ../rtglib/ns-rtProtoLS.tcl" V_DEFINE="$V_DEFINE -DHAVE_STL" V_STLOBJ='$(OBJ_STL)' V_NS_TCL_LIB_STL='$(NS_TCL_LIB_STL)' else V_STLOBJ="" V_NS_TCL_LIB_STL="" fi # This is required by configure.in.tcl to provide absolute pathnames for # tclsh, and configure.in.tail to absolutize V_INCLUDES and V_LIBS. absolutize() { case $1 in -L*) p=`echo $1 | sed 's/^-L//'` ;; -I*) p=`echo $1 | sed 's/^-I//'` ;; *) p=$1 ;; esac d=`dirname $p` f=`basename $p` ad=`( cd $d pwd )` case $1 in -L*) echo -L$ad/$f ;; -I*) echo -I$ad/$f ;; *) echo $ad/$f ;; esac } tclcl-1.20/conf/configure.in.int64_t0000664000076400007660000000467011205575251016154 0ustar tomhnsnamdnl autoconf rules for 64-bit integers dnl $Id: configure.in.int64_t,v 1.8 2009/05/22 19:19:05 tom_henderson Exp $ dnl dnl start by looking for supporting functions dnl AC_CHECK_FUNCS(strtoq strtoll) dnl dnl int64_t seems to be what C 9x will have (in stdint.h), dnl but we're not there yet, so poke around for alternatives. dnl INT64_T_ALTERNATIVE=none HAVE_SUPPORTING_FUNC=false AC_CHECK_SIZEOF(long,0) if test $ac_cv_sizeof_long -ge 8 then INT64_T_ALTERNATIVE=long AC_CHECK_FUNC(strtol) fi AC_CACHE_CHECK([for __int64_t],nsnam_cv_int64_t_HAVE___INT64_T,[ AC_TRY_RUN([ main() { __int64_t x; exit (sizeof(x) >= 8 ? 0 : 1); } ], nsnam_cv_int64_t_HAVE___INT64_T=yes,nsnam_cv_int64_t_HAVE___INT64_T=no,nsnam_cv_int64_t_HAVE___INT64_T=cross)]) if test x"$nsnam_cv_int64_t_HAVE___INT64_T" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then INT64_T_ALTERNATIVE=__int64_t fi AC_CACHE_CHECK([for long long],nsnam_cv_int64_t_HAVE_LONG_LONG,[ AC_TRY_RUN([ main() { long long x; exit (sizeof(x) >= 8 ? 0 : 1); } ], nsnam_cv_int64_t_HAVE_LONG_LONG=yes,nsnam_cv_int64_t_HAVE_LONG_LONG=no,nsnam_cv_int64_t_HAVE_LONG_LONG=cross)]) if test x"$nsnam_cv_int64_t_HAVE_LONG_LONG" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then INT64_T_ALTERNATIVE="long long" fi dnl dnl icky icky dnl dnl AC_CHECK_TYPE_UNQUOTED(TYPE, DEFAULT) AC_DEFUN(AC_CHECK_TYPE_UNQUOTED, [AC_REQUIRE([AC_HEADER_STDC])dnl AC_MSG_CHECKING(for $1) AC_CACHE_VAL(ac_cv_type_$1, [AC_EGREP_CPP(dnl changequote(<<,>>)dnl <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl changequote([,]), [#include #if STDC_HEADERS #include #include #endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl AC_MSG_RESULT($ac_cv_type_$1) if test $ac_cv_type_$1 = no; then AC_DEFINE_UNQUOTED([$1], [$2], [description]) fi ]) dnl dnl now set up int64_t dnl AC_CHECK_TYPE_UNQUOTED(int64_t,$INT64_T_ALTERNATIVE) dnl dnl and broadcast our discovery dnl AC_MSG_CHECKING([which kind of 64-bit int to use]) if test $ac_cv_type_int64_t = yes -o "$INT64_T_ALTERNATIVE" != none then if test "$INT64_T_ALTERNATIVE" = long -o "$ac_cv_func_strtoq" = yes -o "$ac_cv_func_strtoll" = yes then AC_DEFINE([HAVE_INT64], [1], ["do we have int64 type ?"]) if test $ac_cv_type_int64_t = yes then AC_MSG_RESULT([int64_t]) else AC_MSG_RESULT($INT64_T_ALTERNATIVE) fi else AC_MSG_RESULT([missing strto 64-bit-type]) fi else AC_MSG_RESULT(none) fi dnl dnl see tclcl or ns's config.h for other STRTOI64 and STRTOI64_FMTSTR dnl tclcl-1.20/conf/configure.in.jpegwc0000664000076400007660000000565706613464307016160 0ustar tomhnsnam# # Copyright (c) @ Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the MASH Research # Group at the University of California Berkeley. # 4. Neither the name of the University nor of the Research Group may be # used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # AC_ARG_WITH(jpeglib, --with-jpeglib[=path] specify a pathname for the independent jpeg library with progressive enhancements, jpeglib=$withval, jpeglib="no") JPEGLIB_H_PLACES_D="$jpeglib \ $jpeglib/include " JPEGLIB_LIB_PLACES_D="$jpeglib \ $jpeglib/lib \ $jpeglib/bin" JPEGLIB_H_PLACES="../jpeg \ ../jpeg/include \ /usr/local/include \ /usr/local/include/jpeg \ /usr/local/jpeg \ /usr/local/jpeg/include" JPEGLIB_LIB_PLACES="../jpeg \ ../jpeg/lib \ ../jpeg/bin \ /usr/local/lib \ /usr/local/bin \ /usr/local/lib/jpeg \ /usr/local/jpeg \ /usr/local/jpeg/lib \ /usr/local/jpeg/bin" if test "x$jpeglib" != "xno" ; then if test "x$jpeglib" = "x" ; then jpeglib="yes" reqd="" else reqd="yes" fi NS_BEGIN_PACKAGE(jpeglib) NS_CHECK_HEADER_PATH(jpeglib.h,$JPEGLIB_H_PLACES,$jpeglib,$JPEGLIB_H_PLACES_D,V_INCLUDE_JPEGLIB,jpeglib) NS_CHECK_LIB_PATH(jpeg,$JPEGLIB_LIB_PLACES,$jpeglib,$JPEGLIB_LIB_PLACES_D,V_LIB_JPEGLIB,jpeglib) NS_END_PACKAGE(jpeglib,$reqd) V_JPEGWC_OBJ_C="misc/jpegwc-tclapi.o misc/jpegwc.o" else V_JPEGWC_OBJ_C="" fi # V_DEFINE_JPEGWC="-D__JPEGWC__" #AC_SUBST(V_DEFINE_JPEGWC) #AC_SUBST(V_INCLUDE_JPEGWC) AC_SUBST(V_LIB_JPEGLIB) AC_SUBST(V_JPEGWC_OBJ_C) tclcl-1.20/conf/configure.in.mash0000664000076400007660000000471406566220716015623 0ustar tomhnsnam# # Copyright (c) @ Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the MASH Research # Group at the University of California Berkeley. # 4. Neither the name of the University nor of the Research Group may be # used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#) $Header: /cvsroot/otcl-tclcl/conf/configure.in.mash,v 1.10 1998/08/18 06:40:14 yatin Exp $ # if test "$enable_debug" = "yes" ; then V_CCOPT="$V_CCOPT -DMB_DEBUG -DMTRACE" fi AC_ARG_ENABLE(mashsrm, --enable-mashsrm Use the mash SRMv2 code instead of the standalone version, enable_mashsrm=$enableval, enable_mashsrm="no") MPLUG_C_RULE="rm -f \$@; \$(CC) -o \$@ -c \$(CFLAGS) \$(SHLIB_CFLAGS)" MPLUG_CC_RULE="rm -f \$@; \$(C++) -o \$@ -c \$(CFLAGS) \$(SHLIB_CFLAGS)" AC_SUBST(MPLUG_C_RULE) AC_SUBST(MPLUG_CC_RULE) # create the lib and lib/setup subdirectories if test ! -d lib ; then echo "creating ./lib" mkdir lib fi if test ! -d lib/setup ; then echo "creating ./lib/setup" mkdir lib/setup fi tclcl-1.20/conf/configure.in.misc0000664000076400007660000000463110305457475015624 0ustar tomhnsnamdnl misc setup for vic/vat/etc. autoconf scripts. dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.misc,v 1.13 2005/09/01 01:54:05 tom_henderson Exp $ (LBL) case "$target" in *-dec-*) dnl Use ac define so it gets used for later configure tests, dnl and use V_DEFINE so it ends up in the makefile. dnl all because I don't know how to do platform-specific dnl stuff in ns's autoconf.h. Sigh. V_DEFINE="$V_DEFINE -D_XOPEN_SOURCE_EXTENDED" AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [description]) ;; sparc-sun-solaris*) if test $CC = gcc ; then V_DEFINE="$V_DEFINE -mv8 -msupersparc" fi V_DEFINE="$V_DEFINE -D__svr4__" V_LIB="$V_LIB -ldl" ;; sparc-sun-sunos*) V_DEFINE="$V_DEFINE -DNEED_SUNOS_PROTOS" ;; *-sgi-irix5*) V_DEFINE="$V_DEFINE -DIRIX5 -D_BSD_SIGNALS" if test "$target_os" = irix5.3 ; then V_DEFINE="$V_DEFINE -DIRIX5_3" fi V_TARCMD="tar cfL" V_SHELL="SHELL = /bin/sh" if test $CC != gcc ; then V_DEFINE="$V_DEFINE -signed -g3" V_CXXOPT="$V_CXXOPT +p -float" CC="cc -xansi -D__STDC__ -Dinline=" CXX="CC +p -float -DSGI_COMPAT" fi V_RANLIB="ar ts" ;; *-sgi-irix6*) V_DEFINE="$V_DEFINE -DIRIX6 -D_BSD_SIGNALS" V_TARCMD="tar cfL" V_SHELL="SHELL = /bin/sh" if test $CC != gcc ; then V_DEFINE="$V_DEFINE -signed -g3" V_CXXOPT="$V_CXXOPT +p -float" CC="cc -xansi -D__STDC__ -Dinline=" CXX="CC +p -float -DSGI_COMPAT" fi V_RANLIB="ar ts" ;; *-*-bsdi1*) V_SHM="" V_TARCMD="tar cfL" ;; *-*-bsdi2.0*) V_SHM="" V_TARCMD="tar cfL" ;; *-*-bsdi2.1*) # bsdi2.1 added sys-v shared memory support but their implementation # is broken so we have to turn it off. If they ever fix libipc, # the following line should be deleted. V_SHM="" V_TARCMD="tar cfL" V_CCOPT="-O2 -m486" V_LIB="$V_LIB -lipc -ldl" ;; *-*-bsdi3*) V_SHM="" V_TARCMD="tar cfL" V_LIB="$V_LIB -lipc -ldl" V_OBJ="$V_OBJ misc/serial.o" ;; *-*-freebsd*) V_OBJ="$V_OBJ misc/serial.o" ;; *-*-netbsd*) V_TARCMD="tar -h -c -f" V_LIB="$V_LIB -L/usr/local/lib" ;; *-*-hpux*) AC_DEFINE([random],[lrand48],[description]) AC_DEFINE([srandom],[srand],[description]) V_CCOPT="-O" ;; *-*-aix3*) V_DEFINE="$V_DEFINE -DSIGARGS=int" if test "$V_LIB_AIXSHM" != "" ; then V_LIB="$V_LIB $V_LIB_AIXSHM" else V_SHM="" fi CXX="xlC -+" ;; *-*-aix4*) V_DEFINE="$V_DEFINE -DSIGARGS=int -D_AIX41" if test "$V_LIB_AIXSHM" != "" ; then V_LIB="$V_LIB $V_LIB_AIXSHM" else V_SHM="" fi CXX="g++" ;; *-*-linux*) V_BROKEN_OBJ= ;; esac tclcl-1.20/conf/configure.in.nse0000664000076400007660000000177107062052254015450 0ustar tomhnsnamdnl autoconf rules for NS Emulator (NSE) dnl $Id: configure.in.nse,v 1.3 2000/03/10 01:49:32 salehi Exp $ dnl dnl Look for ethernet.h dnl dnl Now look for supporting structures dnl AC_MSG_CHECKING([for struct ether_header]) AC_TRY_COMPILE([ #include #include ], [ int main() { struct ether_header etherHdr; return 1; } ], [ AC_DEFINE(HAVE_ETHER_HEADER_STRUCT) AC_MSG_RESULT(found) ], [ AC_MSG_RESULT(not found) ]) dnl dnl Look for ether_addr dnl AC_MSG_CHECKING([for struct ether_addr]) AC_TRY_COMPILE([ #include #include ], [ int main() { struct ether_addr etherAddr; return 0; } ], [ AC_DEFINE(HAVE_ETHER_ADDRESS_STRUCT) AC_MSG_RESULT(found) ], [ AC_MSG_RESULT(not found) ]) cross_compiling=no dnl dnl Look for addr2ascii function dnl AC_CHECK_FUNCS(addr2ascii) dnl dnl look for SIOCGIFHWADDR dnl AC_TRY_RUN( #include #include int main() { int i = SIOCGIFHWADDR; return 0; } , AC_DEFINE(HAVE_SIOCGIFHWADDR), , echo 1 ) tclcl-1.20/conf/configure.in.otcl0000664000076400007660000000206511335073021015612 0ustar tomhnsnamdnl autoconf rules to find otcl dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.otcl,v 1.21 2010/02/11 21:24:05 tom_henderson Exp $ (LBL) AC_ARG_WITH(otcl, --with-otcl=path specify a pathname for otcl, d=$withval, d="") OTCL_VERS=1.14 OTCL_ALT_VERS=1.0 OTCL_H_PLACES_D="$d \ $d/include" OTCL_H_PLACES="../otcl \ /usr/src/local/otcl \ ../otcl-$OTCL_VERS \ /import/otcl/include \ /usr/src/local/otcl-$OTCL_VERS \ /usr/src/local/otcl-$OTCL_ALT_VERS \ $prefix/include \ /usr/local/include \ /usr/contrib/include \ /usr/include" OTCL_LIB_PLACES_D="$d \ $d/lib \ " OTCL_LIB_PLACES="../otcl \ ../otcl-$OTCL_VERS \ ../otcl-$OTCL_ALT_VERS \ $prefix/lib \ $x_libraries \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/otcl \ /usr/src/local/otcl-$OTCL_VERS \ /usr/src/local/otcl-$OTCL_ALT_VERS \ " NS_BEGIN_PACKAGE(otcl) NS_CHECK_HEADER_PATH(otcl.h,$OTCL_H_PLACES,$d,$OTCL_H_PLACES_D,V_INCLUDE_OTCL,otcl) NS_CHECK_LIB_PATH(otcl$OTCL_VERS,$OTCL_LIB_PLACES,$d,$OTCL_LIB_PLACES_D,V_LIB_OTCL,otcl) NS_END_PACKAGE(otcl,yes) tclcl-1.20/conf/configure.in.perl0000664000076400007660000000232406651762140015625 0ustar tomhnsnam dnl dnl Find perl and make sure it's perl5 dnl ' dnl AC_ARG_WITH(perl, --with-perl=path specify a pathname for perl, d=$withval, d="") # Next line is the minimum version of perl required. # 5.000 and 5.001 are generally scorned because of age and bugs. PERL_VERSION=${PERL_VERSION:-5.002} PERL_PLACES=`echo $PATH | sed 's/:/ /g'` PERL_OPTIONAL=${PERL_OPTIONAL:-false} dnl dnl CHECK_PERL_VERSION(PATHNAME,VERSION) dnl AC_DEFUN(CHECK_PERL_VERSION, [ echo $[$1] -e "require $[$2]" 1>&AC_FD_CC if $[$1] -e "require $[$2]" 2>&AC_FD_CC then : good version else : non-good version => zero pathname AC_MSG_RESULT([ not version $[$2]]) [$1]='' fi ]) NS_CHECK_ANY_PATH(perl,$PERL_PLACES,$d,$d,PERL,no) if test "x$PERL" != x then PERL=$PERL/perl CHECK_PERL_VERSION(PERL,PERL_VERSION) fi dnl fall back on ``perl5'' if test "x$PERL" = "x" then NS_CHECK_ANY_PATH(perl5,$PERL_PLACES,$d,$d,PERL,no) if test "x$PERL" != "x" then PERL=$PERL/perl5 CHECK_PERL_VERSION(PERL,PERL_VERSION) fi fi if test "x$PERL" = x then if $PERL_OPTIONAL then AC_MSG_RESULT([ perl version $PERL_VERSION not found]) else AC_MSG_ERROR(Cannot find Perl 5.) fi fi AC_SUBST(PERL) tclcl-1.20/conf/configure.in.psvp0000664000076400007660000000136306744670134015661 0ustar tomhnsnam# configuration for Parallal Software Video Processing Support. # Disabled by default PSVP_DEFINES="" PSVP_OBJS="" PSVP_INCLUDES="" PSVP_LIBS="" DALI_SRC_LOCATION="../dali" AC_ARG_ENABLE(psvp, --enable-psvp=yes enable parallel software video processing package, psvp_flag=$enableval, psvp_flag="no") AC_ARG_WITH(dali, --with-dali=path specify location of dali source tree, , withval="") if test "$with_dali" != "" ; then DALI_SRC_LOCATION="$with_dali"; fi if test "$psvp_flag" != "no" ; then PSVP_DEFINES="-D__PSVP_ENABLED__" PSVP_OBJS="\$(PSVP_OBJ)" PSVP_INCLUDES="-I${DALI_SRC_LOCATION}/include" PSVP_LIBS="\$(PSVP_LIB)" fi AC_SUBST(PSVP_DEFINES) AC_SUBST(PSVP_OBJS) AC_SUBST(PSVP_INCLUDES) AC_SUBST(PSVP_LIBS) AC_SUBST(DALI_SRC_LOCATION) tclcl-1.20/conf/configure.in.srm0000664000076400007660000000657506722771164015505 0ustar tomhnsnam# # Copyright (c) @ Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the MASH Research # Group at the University of California Berkeley. # 4. Neither the name of the University nor of the Research Group may be # used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#) $Header: /cvsroot/otcl-tclcl/conf/configure.in.srm,v 1.6 1999/05/26 13:09:08 suchi Exp $ # AC_ARG_WITH(srm, --with-srm[=path] specify a pathname for the standalone SRM library, srm=$withval, srm="") if test "x$enable_release" = "xyes" ; then # always enable SRM for the release version if test "x$srm" = "x" ; then srm="yes" fi fi SRM_H_PLACES_D="$srm \ $srm/include \ $srm/srmv2" SRM_LIB_PLACES_D="$srm \ $srm/lib \ $srm/bin" SRM_H_PLACES="../srm2.0 \ ../srm2.0/include \ ../srm2.0/srmv2 \ /usr/local/include \ /usr/local/include/srm2.0 \ /usr/local/srm2.0 \ /usr/local/srm2.0/include \ /usr/local/srm2.0/srmv2" SRM_LIB_PLACES="../srm2.0 \ ../srm2.0/lib \ ../srm2.0/bin \ /usr/local/lib \ /usr/local/bin \ /usr/local/lib/srm2.0 \ /usr/local/srm2.0 \ /usr/local/srm2.0/lib \ /usr/local/srm2.0/bin" if test "$enable_mashsrm" = "yes" ; then V_MASH_SRMV2_OBJ="\$(SRMv2_OBJ)" V_INCLUDE_SRM="-I./srmv2" V_LIB_SRM="" V_INCLUDES="$V_INCLUDE_SRM $V_INCLUDES" echo "Compiling in mash SRMv2; not checking for standalone SRM" else if test "x$srm" != "xno" ; then if test "x$srm" = "x" ; then srm="yes" reqd="" else reqd="yes" fi NS_BEGIN_PACKAGE(srm) NS_CHECK_HEADER_PATH(srmv2-api.h,$SRM_H_PLACES,$srm,$SRM_H_PLACES_D,V_INCLUDE_SRM,srm) NS_CHECK_LIB_PATH(srm,$SRM_LIB_PLACES,$srm,$SRM_LIB_PLACES_D,V_LIB_SRM,srm) NS_END_PACKAGE(srm,$reqd) if test "x$V_LIB_SRM" != "x" ; then V_MBV2_OBJ_CC="\$(MBV2_OBJ_CC)" V_MBV2_OBJ_TK_CC="\$(MBV2_OBJ_TK_CC)" fi fi V_MASH_SRMV2_OBJ="" fi AC_SUBST(V_MASH_SRMV2_OBJ) AC_SUBST(V_INCLUDE_SRM) AC_SUBST(V_LIB_SRM) AC_SUBST(V_MBV2_OBJ_CC) AC_SUBST(V_MBV2_OBJ_TK_CC) tclcl-1.20/conf/configure.in.tail0000644000076400007660000001053411336433171015607 0ustar tomhnsnamdnl standard final commands for vic/vat/etc. autoconf scripts dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.tail,v 1.26 2010/02/16 06:08:25 tom_henderson Exp $ (LBL) if test "$enable_static" = "yes" ; then echo Explicitly enabling static compilation V_STATIC="-static" elif test "$enable_static" = "no" ; then echo Explicitly disabling static compilation V_STATIC="" else echo No explicit static compilation flag\; setting V_STATIC to \"$V_STATIC\" fi AC_SUBST(V_STATIC) # # tcl7.x needs a dynamic loading library (unless built with the # -disable-load flag). Try to find the appropriate one. if test ! -z "$V_NEED_DL" ; then V_LIB_DL="" case "$target" in *-*-solaris*) V_LIB_DL="dl" ;; sparc-sun-sunos*) V_LIB_DL="dl" ;; *-*-bsdi2.1) V_LIB_DL="dl" ;; *-*-bsdi3.0) V_LIB_DL="dl" ;; *-*-hpux*) V_LIB_DL="dld" ;; *-*-linux*) AC_CHECK_LIB(dl, dlopen, V_LIB_DL="dl", V_LIB_DL="dld") ;; esac if test ! -z "$V_LIB_DL" ; then case "$target" in *-*-linux*) ;; *) AC_CHECK_LIB($V_LIB_DL, main, , V_LIB_DL="", $V_STATIC) ;; esac fi if test ! -z "$V_LIB_DL" ; then case "$target" in *-*-bsdi*) ;; *-*-linux*) if test -z "$V_STATIC" ; then V_LIB="$V_LIB -l$V_LIB_DL" fi ;; *) V_LIB="$V_LIB -l$V_LIB_DL" ;; esac else echo "no dynamic load lib" fi fi # Recheck the system to see if we need to add any system-dependent # libraries AC_MSG_CHECKING([system version (for system-dependent libraries)]) if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` else system=`uname -s`-`uname -r` if test "$?" -ne 0 ; then AC_MSG_RESULT([unknown (can't find uname command)]) system=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 system=MP-RAS-`awk '{print $3}' /etc/.relid` fi if test "`uname -s`" = "AIX" ; then system=AIX-`uname -v`.`uname -r` fi AC_MSG_RESULT($system) fi fi dnl Assumes that OS X requires CoreFoundation and assumes that it is present case $system in Darwin-7.*|Darwin-8.*) V_LIBS="$V_LIBS -framework CoreFoundation" esac dnl This check is not very general and vestigal (at least from an ns-point of view). Can it be deleted? -johnh, 13-Oct-99 if test "$host_cpu" = alpha ; then V_DEFINE="$V_DEFINE -DINT_64=u_long" fi # various include hacks dirs="/usr/src/local/include-fixes \ /import/mcast/include" for dir in $dirs; do if test -d $dir ; then V_INCLUDE="$V_INCLUDE -I$dir" fi done # always use -g with gcc during development (even with -O) # force noline so that we can debug all functions if test "$CC" = gcc && test -f .devel ; then V_CCOPT="$V_CCOPT -g -Wall" V_DEFINE="$V_DEFINE -fsigned-char -fno-inline" fi V_DEFINE="$V_DEFINE $V_SHM" # Added because there is no conf.h generated to define HAVE_UNISTD_H AC_CHECK_HEADER(unistd.h, V_DEFINE="$V_DEFINE -DHAVE_UNISTD_H=1") V_TAR_TARGET=$target_os AC_SUBST(V_TAR_TARGET) absolutize_list() { tmp="" for p do case $p in -L* | -I*) tmp="$tmp `absolutize $p`";; *) tmp="$tmp $p";; esac done echo $tmp } # Replace relative path with absolute path V_LIB_TCLCL=`absolutize_list $V_LIB_TCLCL` V_LIB_OTCL=`absolutize_list $V_LIB_OTCL` V_LIB_TCL=`absolutize_list $V_LIB_TCL` V_LIB_TK=`absolutize_list $V_LIB_TK` V_LIBS=`absolutize_list $V_LIBS` V_INCLUDES=`absolutize_list $V_INCLUDES` # Since SMASH and MASH need different sets of libraries, we # use each lib definition seperately instead of using V_LIBS. AC_SUBST(V_LIB_TCLCL) AC_SUBST(V_LIB_OTCL) AC_SUBST(V_LIB_TCL) AC_SUBST(V_LIB_TK) AC_SUBST(V_ALL) AC_SUBST(V_CCOPT) AC_SUBST(V_TAR_EXTRA) AC_SUBST(V_LIB) AC_SUBST(V_DEFINE) AC_SUBST(V_SIGRET) AC_SUBST(V_SHELL) AC_SUBST(V_TARCMD) AC_SUBST(V_INCLUDE) AC_SUBST(V_OBJ) AC_SUBST(V_BROKEN_OBJ) AC_SUBST(V_OBJ_CRYPT) AC_SUBST(V_RANLIB) AC_SUBST(V_AR) AC_SUBST(V_STLOBJ) AC_SUBST(V_NS_TCL_LIB_STL) AC_SUBST(V_LSSCRIPT) AC_PROG_INSTALL dnl backwards compability---if nothing else, do Makefile define([AcOutputFiles],ifdef([AcOutputFiles],AcOutputFiles,Makefile)) AC_OUTPUT(AcOutputFiles) if test ! -d gen ; then echo "creating ./gen" mkdir gen fi if test ! -d bin ; then echo "creating ./bin" mkdir bin fi if test -f .devel -o "$enable_devel" = "yes" ; then make depend fi tclcl-1.20/conf/configure.in.tcl0000644000076400007660000002100111316730154015426 0ustar tomhnsnamdnl autoconf rules to find tcl dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.tcl,v 1.49 2009/12/30 19:36:09 tom_henderson Exp $ (LBL) AC_ARG_WITH(tcl, --with-tcl=path specify a pathname for tcl, d=$withval, d="") dnl cant easily escape brackets in M4/autoconf-- must use quadigraphs below AC_ARG_WITH(tcl-ver, --with-tcl-ver=path specify the version of tcl/tk, TCL_VERS=$withval, TCL_VERS=`echo "puts @<:@info patchlevel@:>@" | tclsh`) dnl Truncate anything beyond and including the second decimal point TCL_HI_VERS=`echo $TCL_VERS | sed 's/^\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1.\2/'` TCL_MAJOR_VERS=`echo $TCL_VERS | sed 's/^\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` TCL_ALT_VERS=8.5 dnl work with one version in the past TCL_OLD_VERS=8.4 TCL_OLD_ALT_VERS=`echo $TCL_OLD_VERS | sed 's/\.//'` dnl These paths are pretty hellish and should probably be pruned. dnl Also, 64-bit support is just hacked on for the common cases TCL_TCL_PLACES_D="$d \ $d/lib64/tcl$TCL_HI_VERS \ $d/lib64/tcl$TCL_VERS \ $d/lib64/tcl$TCL_ALT_VERS \ $d/lib64/tcl \ $d/lib/tcl$TCL_HI_VERS \ $d/lib/tcl$TCL_VERS \ $d/lib/tcl$TCL_ALT_VERS \ $d/lib/tcl \ $d/../lib/tcl$TCL_HI_VERS \ $d/../lib/tcl$TCL_VERS \ $d/../lib/tcl$TCL_ALT_VERS \ $d/lib/tcl$TCL_OLD_VERS \ $d/lib/tcl$TCL_OLD_ALT_VERS \ $d/../lib/tcl$TCL_OLD_VERS \ $d/../lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ $d/lib64 \ $d/lib \ $d/library \ " TCL_TCL_PLACES="../lib/tcl$TCL_HI_VERS \ ../lib/tcl$TCL_ALT_VERS \ ../lib/tcl$TCL_VERS \ ../lib/tcl \ ../tcl$TCL_HI_VERS/library \ ../tcl$TCL_VERS/library \ ../tcl$TCL_ALT_VERS/library \ /usr/lib64/tcl$TCL_VERS \ /usr/lib64/tcl$TCL_HI_VERS \ /usr/lib64/tcl$TCL_ALT_VERS \ /usr/lib64/tcl \ /usr/lib/tcl$TCL_VERS \ /usr/lib/tcl$TCL_HI_VERS \ /usr/lib/tcl$TCL_ALT_VERS \ /usr/lib/tcl \ /usr/share/tcl$TCL_VERS \ /usr/share/tcl$TCL_HI_VERS \ /usr/share/tcl$TCL_ALT_VERS \ /usr/local/src/tcl$TCL_VERS \ /usr/local/src/tcl$TCL_HI_VERS \ /usr/local/src/tcl$TCL_ALT_VERS \ /usr/share/tcltk/tcl$TCL_VERS \ /usr/share/tcltk/tcl$TCL_HI_VERS \ /usr/share/tcltk/tcl$TCL_ALT_VERS \ /usr/share/tcl \ /lib/tcl$TCL_VERS \ /lib/tcl$TCL_HI_VERS \ /lib/tcl$TCL_ALT_VERS \ /usr/lib/tcl$TCL_OLD_VERS \ /usr/lib/tcl$TCL_OLD_ALT_VERS \ /lib/tcl$TCL_OLD_VERS \ /lib/tcl$TCL_OLD_ALT_VERS \ /usr/lib \ /usr/src/local/tcl$TCL_VERS/library \ /usr/src/local/tcl$TCL_HI_VERS/library \ /usr/src/local/tcl$TCL_ALT_VERS/library \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/local/include/tcl$TCL_VERS \ /usr/local/include/tcl$TCL_HI_VERS \ /usr/local/include/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/library \ ../tcl$TCL_OLD_ALT_VERS/library \ /usr/src/local/tcl$TCL_OLD_VERS/library \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/library \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/include/tcl$TCL_OLD_VERS \ /usr/local/include/tcl$TCL_OLD_ALT_VERS \ /usr/local/include \ $prefix/include \ $prefix/lib/tcl \ $x_includes/tk \ $x_includes \ /usr/contrib/include \ /usr/include" TCL_H_PLACES_D="$d/generic \ $d/unix \ $d/include/tcl$TCL_HI_VERS \ $d/include/tcl$TCL_VERS \ $d/include/tcl$TCL_ALT_VERS \ $d/include \ /usr/local/include \ " TCL_H_PLACES=" \ ../include \ ../tcl$TCL_VERS/unix \ ../tcl$TCL_ALT_VERS/unix \ ../tcl$TCL_HI_VERS/generic \ ../tcl$TCL_VERS/generic \ ../tcl$TCL_ALT_VERS/generic \ /usr/src/local/tcl$TCL_VERS/generic \ /usr/src/local/tcl$TCL_HI_VERS/generic \ /usr/src/local/tcl$TCL_ALT_VERS/generic \ /usr/local/src/tcl$TCL_VERS/generic \ /usr/local/src/tcl$TCL_HI_VERS/generic \ /usr/local/src/tcl$TCL_ALT_VERS/generic \ /usr/src/local/tcl$TCL_VERS/unix \ /usr/src/local/tcl$TCL_HI_VERS/unix \ /usr/src/local/tcl$TCL_ALT_VERS/unix \ /usr/contrib/include \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/local/include/tcl$TCL_VERS \ /usr/local/include/tcl$TCL_HI_VERS \ /usr/local/include/tcl$TCL_ALT_VERS \ /usr/local/include \ /import/tcl/include/tcl$TCL_VERS \ /import/tcl/include/tcl$TCL_HI_VERS \ /import/tcl/include/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/generic \ ../tcl$TCL_OLD_ALT_VERS/generic \ /usr/src/local/tcl$TCL_OLD_VERS/generic \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/generic \ ../tcl$TCL_OLD_VERS/unix \ ../tcl$TCL_OLD_ALT_VERS/unix \ /usr/src/local/tcl$TCL_OLD_VERS/unix \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/unix \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/include/tcl$TCL_OLD_VERS \ /usr/local/include/tcl$TCL_OLD_ALT_VERS \ /import/tcl/include/tcl$TCL_OLD_VERS \ /import/tcl/include/tcl$TCL_OLD_ALT_VERS \ $prefix/include \ $x_includes/tk \ $x_includes \ /usr/include \ /usr/include/tcl$TCL_VERS/tcl-private/generic \ /usr/include/tcl$TCL_HI_VERS/tcl-private/generic \ /usr/include/tcl$TCL_ALT_VERS/tcl-private/generic \ /usr/include/tcl-private/generic \ /usr/include/tcl$TCL_VERS \ /usr/include/tcl$TCL_HI_VERS \ /usr/include/tcl$TCL_ALT_VERS \ /usr/include/tcl" dnl /usr/include/tcl is for Debian Linux dnl /usr/include/tcl-private/generic is for FC 4 TCL_LIB_PLACES_D="$d \ $d/lib \ $d/unix" TCL_LIB_PLACES=" \ ../lib \ ../tcl$TCL_VERS/unix \ ../tcl$TCL_HI_VERS/unix \ ../tcl$TCL_ALT_VERS/unix \ /usr/src/local/tcl$TCL_VERS/unix \ /usr/src/local/tcl$TCL_HI_VERS/unix \ /usr/src/local/tcl$TCL_ALT_VERS/unix \ /usr/local/src/tcl$TCL_VERS/unix \ /usr/local/src/tcl$TCL_HI_VERS/unix \ /usr/local/src/tcl$TCL_ALT_VERS/unix \ /usr/contrib/lib \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/lib64/tcl$TCL_VERS \ /usr/lib64/tcl$TCL_HI_VERS \ /usr/lib64/tcl$TCL_ALT_VERS \ /usr/lib/tcl$TCL_VERS \ /usr/lib/tcl$TCL_HI_VERS \ /usr/lib/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/unix \ ../tcl$TCL_OLD_ALT_VERS/unix \ /usr/src/local/tcl$TCL_OLD_VERS/unix \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/unix \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/lib/tcl$TCL_OLD_VERS \ /usr/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/lib \ $prefix/lib \ $x_libs/tk \ $x_libs \ /usr/lib64 \ /usr/lib \ " dnl Decide which set of .tcl library files to use NS_BEGIN_PACKAGE(tcl) NS_CHECK_HEADER_PATH(tcl.h,$TCL_H_PLACES,$d,$TCL_H_PLACES_D,V_INCLUDE_TCL,tcl) NS_CHECK_HEADER_PATH(tclInt.h,$TCL_H_PLACES,$d,$TCL_H_PLACES_D,V_INCLUDE_TCL,tcl) NS_CHECK_LIB_PATH(tcl$TCL_HI_VERS,$TCL_LIB_PLACES,$d,$TCL_LIB_PLACES_D,V_LIB_TCL,tcl) NS_CHECK_ANY_PATH(init.tcl,$TCL_TCL_PLACES,$d,$TCL_TCL_PLACES_D,V_LIBRARY_TCL,tcl) dnl find the pesky http library tcl_http_library_dir=/dev/null tcl_http_places=" \ $V_LIBRARY_TCL \ $V_LIBRARY_TCL/http \ $V_LIBRARY_TCL/http2.5 \ $V_LIBRARY_TCL/http2.4 \ $V_LIBRARY_TCL/http2.3 \ $V_LIBRARY_TCL/http2.1 \ $V_LIBRARY_TCL/http2.0 \ $V_LIBRARY_TCL/http1.0 \ " NS_CHECK_ANY_PATH(http.tcl,$tcl_http_places,"","",tcl_http_library_dir,tcl) AC_MSG_CHECKING(Tcl http.tcl library) if test -f $tcl_http_library_dir/http.tcl then AC_MSG_RESULT(yes) else AC_MSG_ERROR(Couldn't find http.tcl in $tcl_http_places) fi V_TCL_LIBRARY_FILES="\$(TCL_BASE_LIBRARY_FILES) $tcl_http_library_dir/http.tcl" AC_SUBST(V_TCL_LIBRARY_FILES) # # check for tclsh # oldpath=$PATH # $d/unix works if $d is the 8.0 distribution # $d/bin is for the ns-allinone distribution (kind of hacky, isn't it?) PATH=../bin:../tcl$TCL_HI_VERS/unix:../tcl$TCL_VERS/unix:$d/unix:$d/bin:$PATH AC_PATH_PROGS(V_TCLSH,tclsh$TCL_VERS tclsh$TCL_HI_VERS tclsh tclsh$TCL_OLD_VERS,no) if test x"$V_TCLSH" = xno then # out of luck NS_PACKAGE_NOT_COMPLETE(tcl) fi # absolutize it V_TCLSH=`absolutize $V_TCLSH` PATH=$oldpath NS_END_PACKAGE(tcl,yes) AC_SUBST(V_LIBRARY_TCL) tclcl-1.20/conf/configure.in.TclCL0000644000076400007660000000423611335072757015631 0ustar tomhnsnamdnl autoconf rules to find tclcl dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.TclCL,v 1.26 2010/02/11 21:23:59 tom_henderson Exp $ (LBL) dnl This next line is to fix old invocations. AC_ARG_WITH(Tcl, --with-Tcl: old command now replaced by --with-tclcl, AC_MSG_ERROR([The --with-Tcl option has been replaced with --with-tclcl. Please insure you have an up-to-date copy of TclCL and re-run your configuration.])) AC_ARG_WITH(tclcl, --with-tclcl=path specify a pathname for TclCL (the ex-libTcl), d=$withval, d="") TCLCL_VERS=1.20 TCLCL_ALT_VERS=1.0 TCLCL_H_PLACES="\ ../tclcl-$TCLCL_VERS \ ../tclcl-$TCLCL_ALT_VERS \ ../tclcl \ ../TclCL \ ../Tcl-$TCLCL_VERS \ ../Tcl-$TCLCL_ALT_VERS \ ../Tcl \ /usr/src/local/Tcl \ /usr/src/local/Tcl-1.0 \ /import/Tcl/include \ /usr/local/include \ /usr/contrib/include \ /usr/include" TCLCL_H_PLACES_D="$d \ $d/include" TCLCL_LIB_PLACES="\ ../tclcl-$TCLCL_VERS \ ../tclcl-$TCLCL_ALT_VERS \ ../tclcl \ ../TclCL \ ../Tcl-$TCLCL_VERS \ ../Tcl-$TCLCL_ALT_VERS \ ../Tcl \ $x_libraries \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/Tcl \ /usr/src/local/Tcl-1.0" TCLCL_LIB_PLACES_D="$d \ $d/lib" TCLCL_PROG_PLACES="\ ../tclcl-$TCLCL_VERS \ ../tclcl-$TCLCL_ALT_VERS \ ../tclcl \ ../TclCL \ ../Tcl-$TCLCL_VERS \ ../Tcl-$TCLCL_ALT_VERS \ ../Tcl \ $prefix/bin \ $x_libraries \ /usr/contrib/bin \ /usr/local/bin \ /usr/bin \ /usr/src/local/Tcl \ /usr/src/local/Tcl-1.0 \ " TCLCL_PROG_PLACES_D="$d" NS_BEGIN_PACKAGE(tclcl) NS_CHECK_HEADER_PATH(tclcl.h,$TCLCL_H_PLACES,$d,$TCLCL_H_PLACES_D,V_INCLUDE_TCLCL,tclcl) NS_CHECK_LIB_PATH(tclcl$tclcl_VERS,$TCLCL_LIB_PLACES,$d,$TCLCL_LIB_PLACES_D,V_LIB_TCLCL,tclcl) NS_CHECK_ANY_PATH(tcl2c++,$TCLCL_PROG_PLACES,$d,$TCLCL_PROG_PLACES_D,V_TCL2CPP_DIR,tclcl) V_TCL2CPP=$V_TCL2CPP_DIR/tcl2c++ AC_SUBST(V_TCL2CPP) NS_END_PACKAGE(tclcl,yes) tclcl-1.20/conf/configure.in.tcldebug0000664000076400007660000000317207153764660016465 0ustar tomhnsnamdnl autoconf rules to find tcldebug dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.tcldebug,v 1.9 2000/09/01 17:38:56 johnh Exp $ (USC/ISI) AC_ARG_WITH(tcldebug, --with-tcldebug=path specify a pathname for the tcl debugger (path=no disables the debugger), d=$withval, d="") #xxx: Don't know anything about 1.8 # 2.0 = tcl 8.3 # 1.9 = tcl 7.5, 7.6, 8.0 TCLDEBUG_VERS="2.0 1.9 1.8 1.7" pwd_vers="" local_vers="" for vers in $TCLDEBUG_VERS; do pwd_vers="$pwd_vers $PWD/../tcl-debug-$vers" local_vers="$local_vers /usr/src/local/otcl-debug-$vers" done TCLDEBUG_PATH="\ $PWD/../tcl-debug \ $pwd_vers /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/tcl-debug \ $local_vers \ " TCLDEBUG_PATH_D="$d \ $d/lib \ $d/../lib \ " NS_BEGIN_PACKAGE(tcldebug) NS_CHECK_LIB_PATH(tcldbg,$TCLDEBUG_PATH,$d,$TCLDEBUG_PATH_D,V_LIB_TCLDEBUG,tcldebug) #if $NS_PACKAGE_tcldebug_COMPLETE; then # look for debugger entry point function #tmpLIBS=$LIBS #LIBS="$V_LIB_TCL $V_LIB_TCLDEBUG" # the following two may be needed for linking during tcldbg CHECK_LIB #AC_CHECK_LIB(m, main) #AC_CHECK_LIB(dl, dlopen) #notfound=false #AC_CHECK_LIB(tcldbg, Dbg_Init, V_DEFINES="-DHAVE_Dbg_Init $V_DEFINES",notfound=true) #if $notfound; then # notfound=false # AC_CHECK_LIB(tcldbg, Tcldbg_Init, V_DEFINES="-DHAVE_Tcldbg_Init $V_DEFINES",notfound=true) #fi #LIBS=$tmpLIBS #if $notfound; then # echo "configure: warning: Tcl debugger init point is not found. You \ #will not be able to use Tcl debugger." 1>&2 # NS_PACKAGE_tcldebug_COMPLETE=false #fi #fi if $NS_PACKAGE_tcldebug_COMPLETE; then NS_END_PACKAGE(tcldebug,no) fi tclcl-1.20/conf/configure.in.tk0000644000076400007660000001560511316730154015277 0ustar tomhnsnamdnl autoconf rules to find tk dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.tk,v 1.34 2009/12/30 19:36:09 tom_henderson Exp $ (LBL) AC_ARG_WITH(tk, --with-tk=path specify a pathname for tk, d=$withval, d="") dnl library version defaults to 8.0 AC_ARG_WITH(tk-ver, --with-tk-ver=path specify the version of tcl/tk, TK_VERS=$withval, TK_VERS=$TCL_VERS) dnl Truncate anything beyond and including the second decimal point TK_HI_VERS=`echo $TK_VERS | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1.\2/'` TK_MAJOR_VERS=`echo $TK_VERS | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` TK_ALT_VERS=8.5 dnl work with one version in the past TK_OLD_VERS=8.4 TK_OLD_ALT_VERS=`echo $TK_OLD_VERS | sed 's/\.//'` dnl Also, 64-bit support is just hacked on for the common cases TK_TCL_PLACES_D="$d \ $d/lib64/tk$TK_VERS \ $d/lib64/tk$TK_ALT_VERS \ $d/lib64/tk$TK_HI_VERS \ $d/lib/tk$TK_VERS \ $d/lib/tk$TK_ALT_VERS \ $d/lib/tk$TK_HI_VERS \ $d/library \ $d/lib/tk \ $d/../lib/tk$TK_VERS \ $d/../lib/tk$TK_ALT_VERS \ $d/../lib/tk$TK_HI_VERS \ $d/../lib/tk \ $d/lib/tk$TK_OLD_VERS \ $d/lib/tk$TK_OLD_ALT_VERS \ $d/../lib/tk$TK_OLD_VERS \ $d/../lib/tk$TK_OLD_ALT_VERS \ $d/../lib/tk \ $d/lib \ $d/library" TK_TCL_PLACES=" \ ../lib/tk$TK_HI_VERS \ ../lib/tk$TK_VERS \ ../lib/tk$TK_ALT_VERS \ ../tk$TK_VERS/library \ ../tk$TK_ALT_VERS/library \ ../tk$TK_HI_VERS/library \ ../tk/library \ /usr/src/local/tk$TK_VERS/library \ /usr/src/local/tk$TK_ALT_VERS/library \ /usr/src/local/tk$TK_HI_VERS/library \ /usr/contrib/include \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ /usr/local/include/tk$TK_VERS \ /usr/local/include/tk$TK_ALT_VERS \ /usr/local/include/tk$TK_HI_VERS \ /usr/local/include \ /usr/lib64/tk$TK_VERS \ /usr/lib64/tk$TK_ALT_VERS \ /usr/lib64/tk$TK_HI_VERS \ /usr/lib64/tk \ /usr/lib/tk$TK_VERS \ /usr/lib/tk$TK_ALT_VERS \ /usr/lib/tk$TK_HI_VERS \ /usr/lib/tk \ /usr/share/tcltk/tk$TK_VERS \ /usr/share/tcltk/tk$TK_ALT_VERS \ /usr/share/tcltk/tk$TK_HI_VERS \ /usr/share/tk$TK_VERS \ /usr/share/tk$TK_ALT_VERS \ /usr/share/tk$TK_HI_VERS \ /usr/share/tk \ ../tk$TK_OLD_VERS/library \ ../tk$TK_OLD_ALT_VERS/library \ /usr/src/local/tk$TK_OLD_VERS/library \ /usr/src/local/tk$TK_OLD_ALT_VERS/library \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/include/tk$TK_OLD_VERS \ /usr/local/include/tk$TK_OLD_ALT_VERS \ /usr/lib/tk$TK_OLD_VERS \ /usr/lib/tk$TK_OLD_ALT_VERS \ $prefix/include \ $prefix/lib/tk \ $x_includes/tk \ $x_includes \ /usr/include" TK_H_PLACES_D="$d \ $d/generic \ $d/../include/tk$TK_VERS \ $d/../include/tk$TK_HI_VERS \ $d/../include/tk$TK_OLD_VERS \ $d/include/tk$TK_VERS \ $d/include/tk$TK_HI_VERS \ $d/include/tk$TK_OLD_VERS \ $d/include" TK_H_PLACES=" \ ../include \ ../tk$TK_VERS/generic \ ../tk$TK_ALT_VERS/generic \ ../tk$TK_HI_VERS/generic \ /usr/src/local/tk$TK_VERS/generic \ /usr/src/local/tk$TK_ALT_VERS/generic \ /usr/src/local/tk$TK_HI_VERS/generic \ /usr/contrib/include \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ /usr/local/include/tk$TK_VERS \ /usr/local/include/tk$TK_ALT_VERS \ /usr/local/include/tk$TK_HI_VERS \ /usr/local/include \ /import/tk/include/tk$TK_VERS \ /import/tk/include/tk$TK_ALT_VERS \ /import/tk/include/tk$TK_HI_VERS \ ../tk$TK_OLD_VERS/generic \ ../tk$TK_OLD_ALT_VERS/generic \ /usr/src/local/tk$TK_OLD_VERS/generic \ /usr/src/local/tk$TK_OLD_ALT_VERS/generic \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/include/tk$TK_OLD_VERS \ /usr/local/include/tk$TK_OLD_ALT_VERS \ /import/tk/include/tk$TK_OLD_VERS \ /import/tk/include/tk$TK_OLD_ALT_VERS \ $prefix/include \ $x_includes/tk \ $x_includes \ /usr/include \ /usr/include/tcl \ /usr/include/tcl$TK_VERS \ /usr/include/tcl$TK_ALT_VERS \ /usr/include/tcl$TK_HI_VERS \ " dnl /usr/include/tcl for debian/linux TK_LIB_PLACES_D="$d \ $d/lib \ $d/unix" TK_LIB_PLACES=" \ ../lib \ ../lib/tk$TK_HI_VERS \ ../lib/tk$TK_VERS \ ../lib/tk$TK_ALT_VERS \ ../tk$TK_VERS/unix \ ../tk$TK_ALT_VERS/unix \ ../tk$TK_HI_VERS/unix \ /usr/src/local/tk$TK_VERS/unix \ /usr/src/local/tk$TK_ALT_VERS/unix \ /usr/src/local/tk$TK_HI_VERS/unix \ /usr/contrib/lib \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ ../tk$TK_OLD_VERS/unix \ ../tk$TK_OLD_ALT_VERS/unix \ /usr/src/local/tk$TK_OLD_VERS/unix \ /usr/src/local/tk$TK_OLD_ALT_VERS/unix \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/lib \ $prefix/lib \ $x_libs/tk \ $x_libs \ /usr/lib64 \ /usr/lib" NS_BEGIN_PACKAGE(tk) NS_CHECK_HEADER_PATH(tk.h,$TK_H_PLACES,$d,$TK_H_PLACES_D,V_INCLUDE_TK,tk) NS_CHECK_LIB_PATH(tk$TK_HI_VERS,$TK_LIB_PLACES,$d,$TK_LIB_PLACES_D,V_LIB_TK,tk) NS_CHECK_ANY_PATH(tk.tcl,$TK_TCL_PLACES,$d,$TK_TCL_PLACES_D,V_LIBRARY_TK,tk) NS_END_PACKAGE(tk,no) if test -r $V_LIBRARY_TK/optionMenu.tcl ; then V_TKDOSNAMES='$(LIBRARY_TK)/optionMenu.tcl $(LIBRARY_TK)/scrollbar.tcl' V_NEED_DL="" else V_TKDOSNAMES='$(LIBRARY_TK)/optMenu.tcl $(LIBRARY_TK)/scrlbar.tcl' V_NEED_DL=YES fi AC_SUBST(V_TKDOSNAMES) AC_SUBST(V_LIBRARY_TK) tclcl-1.20/conf/configure.in.video0000664000076400007660000001372606504301426015772 0ustar tomhnsnam# lots of hairy special cases for detecting which frame capture # support to compile in V_LIB_VIDEO="" V_INCLUDE_VIDEO="" V_DEFINE_VIDEO="" V_OBJ_VIDEO="" V_LIB_XIL="" V_OBJ_XIL="" AC_ARG_WITH(video-dirs, --with-video-dirs=path specify a pathname for locating video include files, , withval="") AC_ARG_WITH(vigrapix, --with-vigrapix=path specify a pathname for locating vigrapix include and library files, , withval="") #XXX AC_ARG_WITH(videopix, --with-videopix=path specify a pathname for locating videopix include and library files, , withval="") #XXX if test "$with_video_dirs" != "" ; then for i in $with_video_dirs ; do V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$i" done fi if test -r /usr/lib/libvl.so ; then V_LIB_VIDEO="$V_LIB_VIDEO -lvl -ldmedia" V_OBJ_VIDEO="$V_OBJ_VIDEO video-vl.o output-vl.o" # if test -r /usr/include/dmedia/cl_cosmo.h ; then # V_LIB_VIDEO="$V_LIB_VIDEO -lcl" # V_OBJ_VIDEO="$V_OBJ_VIDEO video-cosmo.o" # fi fi if test -r /usr/lib/libsvideo.a ; then V_LIB_VIDEO="$V_LIB_VIDEO -lsvideo" V_OBJ_VIDEO="$V_OBJ_VIDEO video-svideo.o" fi if test -r /usr/lib/libXv.a ; then V_LIB_VIDEO="$V_LIB_VIDEO -lXv" V_DEFINE="$V_DEFINE -DXV_PSEUDO8" V_OBJ_VIDEO="$V_OBJ_VIDEO video-xv.o" fi if test -r /usr/lpp/parallax/lib/libXvid.a ; then V_LIB_VIDEO="$V_LIB_VIDEO -L/usr/lpp/parallax/lib -lXvid -lXv" V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I/usr/lpp/parallax/include" V_OBJ_VIDEO="$V_OBJ_VIDEO video-plx.o assistor-plx.o" fi if test -r /usr/lpp/UMS6000/lib/libUMSobj.a ; then V_LIB_VIDEO="$V_LIB_VIDEO -L/usr/lpp/UMS6000/lib -lUMSobj" V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I/usr/lpp/UMS6000/include" V_DEFINE="$V_DEFINE -DSUNRISE" V_OBJ_VIDEO="$V_OBJ_VIDEO video-sunrise.o output-sunrise.o" fi if test -r /usr/include/machine/ioctl_meteor.h ; then V_OBJ_VIDEO="$V_OBJ_VIDEO video-meteor.o" elif test "$with_video_dirs" != "" ; then for i in $with_video_dirs ; do if test -r $i/ioctl_meteor.h ; then V_OBJ_VIDEO="$V_OBJ_VIDEO video-meteor.o" V_DEFINE_VIDEO="$V_DEFINE_VIDEO -DNON_STD_IOCTL_METEOR_H" break fi done fi if test -r /usr/local/lib/libspigot.a ; then V_OBJ_VIDEO="$V_OBJ_VIDEO video-spigot.o" V_LIB_VIDEO="$V_LIB_VIDEO -lspigot" V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I/usr/local/include" fi # Remove this for now, since device switching is broken. #if test -r /usr/local/lib/libqcam.a ; then # V_OBJ_VIDEO="$V_OBJ_VIDEO video-qcam.o" # V_LIB_VIDEO="$V_LIB_VIDEO -lqcam" # V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I/usr/local/include" #else # if test -r /dev/qcam0 ; then # V_OBJ_VIDEO="$V_OBJ_VIDEO video-qcam.o" # fi #fi #XXX AC_ARG_ENABLE(sccvideo, --disable-sccvideo don't compile in the SCC video code, e=$enableval, e="yes") # the default is yes: you have to explicitly say "--disable-sccvideo" if test "$e" = yes ; then if test -r /usr/include/linux/scc.h -o -r /usr/include/machine/scc.h ; then V_OBJ_VIDEO="$V_OBJ_VIDEO video-scc.o" echo "Compiling with SCC video code" fi else echo "Compiling without SCC video code" fi vpix_dir=/usr/src/local/vfc-1.0 if test "$with_videopix" != "" ; then vpix_dir=$with_videopix fi vpix_lib=$vpix_dir/vfc_lib if test -d /import/VideoPix ; then vpix_dir=/import/VideoPix vpix_lib=$vpix_dir/lib fi if test -d $vpix_dir ; then V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$vpix_dir/sys -I$vpix_lib" V_LIB_VIDEO="$V_LIB_VIDEO $vpix_lib/libvfc.a" V_DEFINE="$V_DEFINE -DVIDEOPIX" V_OBJ_VIDEO="$V_OBJ_VIDEO video-vpix.o" fi places="/usr/src/local/vigrapix/lib \ /opt/VIGRAvigrapix/lib" if test "$with_vigrapix" != "" ; then places="${with_vigrapix}/lib \ ${with_vigrapix}" fi for dir in $places; do if test -d $dir ; then V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$dir" V_LIB_VIDEO="$V_LIB_VIDEO $dir/libvigrapix.a" V_OBJ_VIDEO="$V_OBJ_VIDEO video-vigra.o" break fi done d=/opt/MMACslv if test -d $d ; then V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$d/include" V_LIB_VIDEO="$V_LIB_VIDEO $d/lib/libslv.a -lintl" V_OBJ_VIDEO="$V_OBJ_VIDEO video-slv.o" fi places="/opt/parallax \ /usr/src/local/parallax \ /usr/local/parallax \ /usr/local/parallax/components/Xclients_sun4.ow3_1.18 \ /usr/src/local/parallax/components/Xclients_sun4.ow3_1.18" for dir in $places; do if test -d $dir/include ; then V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$dir/include" V_LIB_VIDEO="$V_LIB_VIDEO -L$dir/lib -lXext -lXvid" V_OBJ_VIDEO="$V_OBJ_VIDEO video-plx.o assistor-plx.o" break fi done case "$target" in *-dec-*) jv_dir=jv2 V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$jv_dir" V_LIB_VIDEO="$V_LIB_VIDEO $jv_dir/jvdriverint.o" V_OBJ_VIDEO="$V_OBJ_VIDEO assistor-jv.o video-jv.o" if test "$target_os" = ultrix4.3 ; then #XXX rtip code currently broken #V_DEFINE="$V_DEFINE -DRTIP" #V_LIB="$V_LIB lib.ultrix/librcap.a" #V_INCLUDE="$V_INCLUDE -Ircap-include" #XXX #V_OBJ_VIDEO="$V_OBJ_VIDEO net-rtip.o" echo no rtip support fi ;; sparc-sun-solaris*) have_xil=no xil_dir=/opt/SUNWits/Graphics-sw/xil if test -d $xil_dir ; then if test ! -d $xil_dir/include ; then echo "You don't have the XIL developer's kit!" echo "Building without XIL support..." else have_xil=yes fi fi if test $CC = gcc ; then V_DEFINE="$V_DEFINE -mv8 -msupersparc" fi V_DEFINE="$V_DEFINE -D__svr4__" if test -f video/video-rtvc.cc || \ test -f video/video-rtvc.o ; then V_OBJ_VIDEO="$V_OBJ_VIDEO video-rtvc.o" if test "$have_xil" = yes ; then V_ALL="$V_PROG $V_PROG.xil" V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$xil_dir/include" V_LIB_XIL="-L$xil_dir/lib -R$xil_dir/lib -lxil" V_OBJ_XIL=video-xil.o fi elif test "$have_xil" = yes ; then V_OBJ_XIL=video-xil.o V_INCLUDE_VIDEO="$V_INCLUDE_VIDEO -I$xil_dir/include" V_LIB_VIDEO="$V_LIB_VIDEO -L$xil_dir/lib -R$xil_dir/lib -lxil" fi ;; esac #XXX video stuff needs to move to ../conf/configure.in.video if test -f encoder-bvc.cc ; then V_OBJ="$V_OBJ encoder-bvc.o decoder-bvc.o" fi #XXX list="" for f in $V_OBJ_VIDEO; do list="$list video/$f" done V_OBJ_VIDEO=$list AC_SUBST(V_OBJ_VIDEO) AC_SUBST(V_INCLUDE_VIDEO) AC_SUBST(V_DEFINE_VIDEO) AC_SUBST(V_LIB_VIDEO) AC_SUBST(V_LIB_XIL) AC_SUBST(V_OBJ_XIL) tclcl-1.20/conf/configure.in.x110000644000076400007660000000471011440616605015267 0ustar tomhnsnamdnl autoconf rules to find X11 includes and libraries dnl $Header: /cvsroot/otcl-tclcl/conf/configure.in.x11,v 1.6 2010/09/05 04:32:46 tom_henderson Exp $ (LBL) xlibdirs="\ /usr/openwin/lib \ /usr/X11R6/lib64 \ /usr/X11R6/lib \ /usr/lib/X11R6 \ /usr/X11R5/lib \ /usr/lib/X11R5 \ /usr/X11R4/lib \ /usr/lib/X11R4 \ /usr/local/lib \ /usr/X386/lib \ /usr/X11/lib \ /Developer/SDKs/MacOSX10.5.sdk/usr/X11R6/lib \ /Developer/SDKs/MacOSX10.6.sdk/usr/X11R6/lib \ /usr/unsupported/lib \ /import/X11R4/usr/lib" xincdirs="\ /usr/openwin/include \ /usr/X11R6/include \ /usr/include/X11R6 \ /usr/X11R5/include \ /usr/include/X11R5 \ /usr/X11R4/include \ /usr/include/X11R4 \ /usr/local/include \ /usr/X386/include \ /usr/X11/include \ /usr/lpp/X11/include \ /Developer/SDKs/MacOSX10.5.sdk/usr/X11R6/include \ /Developer/SDKs/MacOSX10.6.sdk/usr/X11R6/include \ /usr/unsupported/include \ /import/X11R4/include" echo "checking for X11 header files" if test "$x_includes" = NONE ; then AC_TEST_CPP([#include ],x_includes="",x_includes=NONE) if test "$x_includes" = NONE ; then for i in $xincdirs ; do if test -r $i/X11/Intrinsic.h; then x_includes=$i break fi done if test "$x_includes" = NONE ; then echo "can't find X includes" exit 1 fi fi fi if test -n "$x_includes" ; then V_INCLUDE_X11=-I$x_includes AC_SUBST(V_INCLUDE_X11) fi echo "checking for X11 library archive" if test "$x_libraries" = NONE ; then AC_CHECK_LIB(X11, XOpenDisplay, x_libraries="", x_libraries=NONE) if test "$x_libraries" = NONE ; then for i in $xlibdirs ; do if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.dylib; then x_libraries=$i break fi done if test "$x_libraries" = NONE ; then echo "can't find X library" exit 1 fi fi fi V_LIB_X11=-lX11 if test -n "$V_SHM" ; then if test -z "$x_libraries" ; then AC_CHECK_LIB(Xext, XShmAttach, V_Xext="-lXext", V_Xext=NONE, -lX11) else echo "checking for libXext.a" if test -f $x_libraries/libXext.a -o -f $x_libraries/libXext.so -o -f $x_libraries/libXext.dylib; then V_Xext="-lXext" else echo "warning: compiling without -lXext" fi fi if test "$V_Xext" = NONE ; then echo "warning: compiling without -lXext" else V_LIB_X11="$V_Xext $V_LIB_X11" fi fi if test -n "$x_libraries" ; then V_LIB_X11="-L$x_libraries $V_LIB_X11" if test $solaris ; then V_LIB_X11="-R$x_libraries $V_LIB_X11" fi fi AC_SUBST(V_LIB_X11) tclcl-1.20/conf/configure.in.z0000664000076400007660000000174106622635616015143 0ustar tomhnsnamdnl autoconf rules to find z AC_ARG_WITH(zlib, --with-zlib=path specify a pathname for zlib, d=$withval, d="") ZLIB_VERS=1.1.3 ZLIB_H_PLACES_D="$d \ $d/include" ZLIB_H_PLACES="../zlib \ /usr/src/local/zlib \ ../zlib-$ZLIB_VERS \ /import/zlib/include \ /usr/src/local/zlib-$ZLIB_VERS \ /usr/src/local/zlib-$ZLIB_ALT_VERS \ $prefix/include \ /usr/local/include \ /usr/contrib/include \ /usr/include" ZLIB_LIB_PLACES_D="$d \ $d/lib \ " ZLIB_LIB_PLACES="../zlib \ ../zlib-$ZLIB_VERS \ ../zlib-$ZLIB_ALT_VERS \ $prefix/lib \ $x_libraries \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/zlib \ /usr/src/local/zlib-$ZLIB_VERS \ /usr/src/local/zlib-$ZLIB_ALT_VERS \ " NS_BEGIN_PACKAGE(zlib) NS_CHECK_HEADER_PATH(zlib.h,$ZLIB_H_PLACES,$d,$ZLIB_H_PLACES_D,V_INCLUDE_ZLIB,zlib) NS_CHECK_LIB_PATH(z$ZLIB_VERS,$ZLIB_LIB_PLACES,$d,$ZLIB_LIB_PLACES_D,V_LIB_ZLIB,zlib) if $NS_PACKAGE_zlib_COMPLETE; then NS_END_PACKAGE(zlib,no) fi tclcl-1.20/conf/configure.in.ztrace0000664000076400007660000000401406625375514016157 0ustar tomhnsnam# # Copyright (c) @ Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the MASH Research # Group at the University of California Berkeley. # 4. Neither the name of the University nor of the Research Group may be # used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#) $Header: /cvsroot/otcl-tclcl/conf/configure.in.ztrace,v 1.1 1998/11/20 23:29:16 kwright Exp $ # AC_ARG_ENABLE(ztrace, --enable-ztrace build with ztrace tracing enabled, , enable_ztrace="no") if test "$enable_ztrace" = "yes" ; then V_CCOPT="$V_CCOPT -DZTRACE" fi tclcl-1.20/conf/makefile.win0000664000076400007660000001055007345236040014643 0ustar tomhnsnam# Copyright (c) 1994, 1995, 1996 # The Regents of the University of California. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that: (1) source code distributions # retain the above copyright notice and this paragraph in its entirety, (2) # distributions including binary code include the above copyright notice and # this paragraph in its entirety in the documentation or other materials # provided with the distribution, and (3) all advertising materials mentioning # features or use of this software display the following acknowledgement: # ``This product includes software developed by the University of California, # Lawrence Berkeley Laboratory and its contributors.'' Neither the name of # the University nor the names of its contributors may be used to endorse # or promote products derived from this software without specific prior # written permission. # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # @(#) $Header: /cvsroot/otcl-tclcl/conf/makefile.win,v 1.16 2001/09/04 20:40:00 mehringe Exp $ # Please change this path to the correct one on your system. MSVCDIR = c:\progra~1\micros~3\VC98 #MSVCDIR = c:\progra~1\\DevStudio\VC TOOLS32 = $(MSVCDIR) PATH = $(MSVCDIR);$(PATH) INCLUDE = $(MSVCDIR)\include # Set this to the _absolute_ path to where ns-allinone is installed. # Tcl/Tk/otcl/tclcl/ns should all be located under this path. #LOCAL_SRC = c:\research\vint\ns-allinone-2.1b7 LOCAL_SRC = e:\conser # comment this out to build with debug options NODEBUG=1 TARGETOS = BOTH # uncomment this out to build static version STATIC_LIB=1 !include <$(INCLUDE)/win32.mak> cc32 = cl rc32 = rc link32 = link TK_VER = 80 TCL_VER = 80 TCL_SUFFIX = 8.0 TK_SUFFIX = 8.0 TK_DIR = $(LOCAL_SRC)\tk$(TK_SUFFIX) TCL_DIR = $(LOCAL_SRC)\tcl$(TCL_SUFFIX) OTCL_DIR = $(LOCAL_SRC)\otcl TCLCL_DIR = $(LOCAL_SRC)\tclcl # Static build requires specially hacked versions of tcl8.0 and tk8.0 # Available from http://mash.cs.berkeley.edu/dist !ifdef STATIC_LIB LIB_TK = -LIBPATH:$(TK_DIR)\win stk$(TK_VER).lib LIB_TCL = -LIBPATH:$(TCL_DIR)\win stcl$(TCL_VER).lib !else LIB_TK = -LIBPATH:$(TK_DIR)\win\Release tk$(TK_VER).lib LIB_TCL = -LIBPATH:$(TCL_DIR)\win\Release tcl$(TCL_VER).lib !endif LIB_OTCL = -LIBPATH:$(OTCL_DIR) otcl.lib LIB_TCLCL = $(TCLCL_DIR)\tclcl.lib LIBRARY_TK = $(TK_DIR)\library LIBRARY_TCL = $(TCL_DIR)\library TCL_LIBRARY_FILES = $(TCL_83_LIBRARY_FILES) TKDOSNAMES = $(LIBRARY_TK)/optMenu.tcl $(LIBRARY_TK)/scrlbar.tcl CC = $(cc32) CPP = $(cc32) LINK = $(link32) MKDEP = makedep2 TCLSH = $(TCL_DIR)\win\tclsh$(TCL_VER).exe TCL2C = $(TCLCL_DIR)\tcl2c++.exe AR = lib -out: RANLIB = echo INSTALL = echo LN = echo TEST = echo RM = rm -f PERL = perl !IFDEF NODEBUG CCOPT = -Ox -Zm1000 !ELSE CCOPT = -Gm -Gi -YX -Zm1000 !ENDIF # Include STATIC_LIB so that main.cc will be properly compiled for nam. !ifdef STATIC_LIB CCOPT = -DSTATIC_LIB $(CCOPT) !endif !IFDEF NODEBUG LDFLAGS = -LIBPATH:$(TOOLS32)\lib $(lflags) $(conlibsdll) !ELSE LDFLAGS = -LIBPATH:$(TOOLS32)\lib /NODEFAULTLIB /INCREMENTAL:NO /DEBUG /NOLOGO $(conlibsdll) !ENDIF STATIC = LDOUT = -out: DEFINE = -DNO_TK INCLUDE_TK = -I$(TK_DIR)\win -I$(TK_DIR)\generic INCLUDE_TCL = -I$(TCL_DIR)\win -I$(TCL_DIR)\generic INCLUDE_OTCL = -I$(OTCL_DIR) INCLUDE_TCLCL = -I$(TCLCL_DIR) INCLUDE_X11 = -I$(TK_DIR)\xlib INCLUDE_MISC = -I$(TOOLS32)\include # Disable building STL-dependent object files because VC6.x does # not seem to support G++-style (2.8.0 and up) STL. OBJ_STL = NS_TCL_LIB_STL= OBJ_COMPAT_C = compat/gettod.o compat/win32.o embedded-console.o # don't want system files to be added when making dependencies DEPEND_INCS = \ $(INCLUDE_TK) $(INCLUDE_TCL) \ $(INCLUDE_OTCL) $(INCLUDE_TCLCL) \ $(INCLUDE_X11) $(MD_INC) -I. INCLUDES = $(DEPEND_INCS) $(INCLUDE_MISC) LIB = $(LIB_TCLCL) $(LIB_OTCL) \ $(LIB_TK) $(LIB_TCL) \ libci.lib msvcirt.lib $(guilibsdll) # $(LIB_GRABBER) $(LIB_GSM) \ # winmm.lib CFLAGS = $(cdebug:Z7=Zi) $(cflags) $(cvarsdll) $(CCOPT) $(DEFINE) .SUFFIXES : .cc # add -FR$*.sbr if you want browse info .cc.o: $(cc32) -c $(CFLAGS) $(INCLUDES) -Fo$@ -Tp $< .c.o: $(cc32) -c $(CFLAGS) $(INCLUDES) -Fo$@ $< GEN_DIR = gen\\ LIB_DIR = lib\\ NS = ns.exe NSX = nsx.exe NAM = nam.exe tclcl-1.20/conf/mkdep0000775000076400007660000000517307164707261013411 0ustar tomhnsnam#!/bin/sh - # # Copyright (c) 1987 Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms are permitted # provided that this notice is preserved and that due credit is given # to the University of California at Berkeley. The name of the University # may not be used to endorse or promote products derived from this # software without specific prior written permission. This software # is provided ``as is'' without express or implied warranty. # # @(#)mkdep.sh 5.11 (Berkeley) 5/5/88 # #PATH=/bin:/usr/bin:/usr/ucb #export PATH MAKE=Makefile # default makefile name is "Makefile" while : do case "$1" in # -f allows you to select a makefile name -f) MAKE=$2 shift; shift ;; # the -p flag produces "program: program.c" style dependencies # so .o's don't get produced -p) SED='s;\.o;;' shift ;; *) break ;; esac done if [ $# = 0 ] ; then echo 'usage: mkdep [-p] [-f makefile] [flags] file ...' exit 1 fi if [ ! -w $MAKE ]; then echo "mkdep: no writeable file \"$MAKE\"" exit 1 fi TMP=/tmp/mkdep$$ trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 cp $MAKE ${MAKE}.bak sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP cat << _EOF_ >> $TMP # DO NOT DELETE THIS LINE -- mkdep uses it. # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. _EOF_ awk=awk if [ -x /bin/nawk ] ; then awk=/bin/nawk fi # If your compiler doesn't have -M, add it. If you can't, the next two # lines will try and replace the "cc -M". The real problem is that this # hack can't deal with anything that requires a search path, and doesn't # even try for anything using bracket (<>) syntax. # #egrep '^#include[ ]*".*"' /dev/null $* | #sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.cc/.o/' | g++ -M $* | sed " s; \./; ;g $SED" | $awk ' END { if (rec != "") print rec; } { if ($1 != prev) { if (rec != "") print rec; rec = $0; prev = $1; } else { if (length(rec $2) > 78) { print rec; rec = $0; } else rec = rec " " $2 } }' | $awk '{ # GNU cpp outputs assumes objects land in current directory # but we put them in subdirectories, so fix up the rules accordingly # i.e., make "foo.o: dir/foo.cc blah" turn into "dir/foo.o: dir/..." if ($1 ~ /.*:/ && $2 ~ "/") { k = 1 while (1) { s = substr($2, k); i = index(s,"/"); if (i == 0) break; k += i } path = substr($2, 1, k - 1); line = ""; for (i = 2; i <= NF; ++i) line = line " " $i; print path $1 " " line; } else print $0 }' >> $TMP cat << _EOF_ >> $TMP # IF YOU PUT ANYTHING HERE IT WILL GO AWAY _EOF_ # copy to preserve permissions cp $TMP $MAKE rm -f ${MAKE}.bak $TMP exit 0 tclcl-1.20/conf/README0000664000076400007660000000016506343066777013247 0ustar tomhnsnam For new modules, please use the macros in configure.in.fns if possible rather than duplicating lots of shell code. tclcl-1.20/config.guess0000775000076400007660000012701210566147656013761 0ustar tomhnsnam#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-01-15' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[3456]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tclcl-1.20/config.h0000644000076400007660000000367411635457330013053 0ustar tomhnsnam/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ /* Note: this file is overwritten by autoheader */ /* "do we have int64 type ?" */ #define HAVE_INT64 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strtoll' function. */ #define HAVE_STRTOLL 1 /* Define to 1 if you have the `strtoq' function. */ #define HAVE_STRTOQ 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "" /* Define to the full name of this package. */ #define PACKAGE_NAME "" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "" /* Define to the version of this package. */ #define PACKAGE_VERSION "" /* The size of a `long', as computed by sizeof. */ #define SIZEOF_LONG 4 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* description */ /* #undef _XOPEN_SOURCE_EXTENDED */ /* description */ /* #undef int64_t */ /* description */ /* #undef random */ /* description */ /* #undef srandom */ tclcl-1.20/config.h.in0000664000076400007660000000345010311714733013443 0ustar tomhnsnam/* config.h.in. Generated from configure.in by autoheader. */ /* Note: this file is overwritten by autoheader */ /* "do we have int64 type ?" */ #undef HAVE_INT64 /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strtoll' function. */ #undef HAVE_STRTOLL /* Define to 1 if you have the `strtoq' function. */ #undef HAVE_STRTOQ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The size of a `long', as computed by sizeof. */ #undef SIZEOF_LONG /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* description */ #undef _XOPEN_SOURCE_EXTENDED /* description */ #undef int64_t /* description */ #undef random /* description */ #undef srandom tclcl-1.20/config.status0000755000076400007660000007010411635457326014147 0ustar tomhnsnam#! /bin/sh # Generated by configure. # 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-/bin/sh} ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # 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 after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, 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 # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (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 sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " # Files that config.status was made for. config_files=" Makefile" config_headers=" config.h:config.h.in" ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." ac_cs_version="\ config.status configured by ./configure, generated by GNU Autoconf 2.63, with options \"\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='/home/tomh/localhome/cvs/tclcl' srcdir='.' INSTALL='/usr/bin/install -c' test -n "$AWK" || AWK=awk # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_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" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi if $ac_cs_recheck; then set X '/bin/sh' './configure' $ac_configure_extra_args --no-create --no-recursion shift $as_echo "running CONFIG_SHELL=/bin/sh $*" >&6 CONFIG_SHELL='/bin/sh' export CONFIG_SHELL exec "$@" fi exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.h.in" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_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 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && cat >>"$tmp/subs1.awk" <<\_ACAWK && S["LTLIBOBJS"]="" S["LIBOBJS"]="" S["INSTALL_DATA"]="${INSTALL} -m 644" S["INSTALL_SCRIPT"]="${INSTALL}" S["INSTALL_PROGRAM"]="${INSTALL}" S["V_LSSCRIPT"]="" S["V_NS_TCL_LIB_STL"]="" S["V_STLOBJ"]="" S["V_AR"]="ar cr" S["V_RANLIB"]="ranlib" S["V_OBJ_CRYPT"]="" S["V_BROKEN_OBJ"]="" S["V_OBJ"]="" S["V_INCLUDE"]="" S["V_TARCMD"]="tar cfh" S["V_SHELL"]="" S["V_SIGRET"]="void" S["V_DEFINE"]=" -DNDEBUG -DUSE_SHM -DHAVE_UNISTD_H=1" S["V_LIB"]=" -lnsl -ldl" S["V_TAR_EXTRA"]="" S["V_CCOPT"]=" -Wall -Wno-write-strings -Wno-parentheses" S["V_ALL"]="libtclcl.a" S["V_LIB_TK"]="-L/usr/lib -ltk8.5" S["V_LIB_TCL"]="-L/usr/lib -ltcl8.5" S["V_LIB_OTCL"]="-L/home/tomh/localhome/cvs/otcl -lotcl" S["V_LIB_TCLCL"]="" S["V_TAR_TARGET"]="linux-gnu" S["V_STATIC"]="" S["V_DEFINES"]="-DHAVE_LIBZ1_1_3 -DHAVE_ZLIB_H -DHAVE_LIBOTCL1_14 -DHAVE_OTCL_H -DHAVE_LIBTK8_5 -DHAVE_TK_H -DHAVE_LIBTCL8_5 -DHAVE_TCLINT_H -DHAVE_TCL_H " S["V_LIBS"]="-L/usr/lib -lz -L/home/tomh/localhome/cvs/otcl -lotcl -L/usr/lib -ltk8.5 -L/usr/lib -ltcl8.5" S["V_INCLUDES"]="-I/usr/include -I/home/tomh/localhome/cvs/otcl -I/usr/include -I/usr/include/tcl-private/generic -I/usr/include" S["V_LIB_X11"]="-lXext -lX11" S["V_INCLUDE_X11"]="" S["V_LIBRARY_TK"]="/usr/share/tk8.5" S["V_TKDOSNAMES"]="$(LIBRARY_TK)/optMenu.tcl $(LIBRARY_TK)/scrlbar.tcl" S["V_LIBRARY_TCL"]="/usr/share/tcl8.5" S["V_TCLSH"]="/usr/bin/tclsh8.5" S["V_TCL_LIBRARY_FILES"]="$(TCL_BASE_LIBRARY_FILES) /usr/share/tcl8.5/http1.0/http.tcl" S["RANLIB"]="ranlib" S["EGREP"]="/bin/grep -E" S["GREP"]="/bin/grep" S["CPP"]="gcc -E" S["ac_ct_CXX"]="g++" S["CXXFLAGS"]="-g -O2" S["CXX"]="g++" S["OBJEXT"]="o" S["EXEEXT"]="" S["ac_ct_CC"]="gcc" S["CPPFLAGS"]="" S["LDFLAGS"]="" S["CFLAGS"]="-g -O2" S["CC"]="gcc" S["target_os"]="linux-gnu" S["target_vendor"]="pc" S["target_cpu"]="i686" S["target"]="i686-pc-linux-gnu" S["host_os"]="linux-gnu" S["host_vendor"]="pc" S["host_cpu"]="i686" S["host"]="i686-pc-linux-gnu" S["build_os"]="linux-gnu" S["build_vendor"]="pc" S["build_cpu"]="i686" S["build"]="i686-pc-linux-gnu" S["target_alias"]="" S["host_alias"]="" S["build_alias"]="" S["LIBS"]="" S["ECHO_T"]="" S["ECHO_N"]="-n" S["ECHO_C"]="" S["DEFS"]="-DHAVE_CONFIG_H" S["mandir"]="${datarootdir}/man" S["localedir"]="${datarootdir}/locale" S["libdir"]="${exec_prefix}/lib" S["psdir"]="${docdir}" S["pdfdir"]="${docdir}" S["dvidir"]="${docdir}" S["htmldir"]="${docdir}" S["infodir"]="${datarootdir}/info" S["docdir"]="${datarootdir}/doc/${PACKAGE}" S["oldincludedir"]="/usr/include" S["includedir"]="${prefix}/include" S["localstatedir"]="${prefix}/var" S["sharedstatedir"]="${prefix}/com" S["sysconfdir"]="${prefix}/etc" S["datadir"]="${datarootdir}" S["datarootdir"]="${prefix}/share" S["libexecdir"]="${exec_prefix}/libexec" S["sbindir"]="${exec_prefix}/sbin" S["bindir"]="${exec_prefix}/bin" S["program_transform_name"]="s,x,x," S["prefix"]="/usr/local" S["exec_prefix"]="${prefix}" S["PACKAGE_BUGREPORT"]="" S["PACKAGE_STRING"]="" S["PACKAGE_VERSION"]="" S["PACKAGE_TARNAME"]="" S["PACKAGE_NAME"]="" S["PATH_SEPARATOR"]=":" S["SHELL"]="/bin/sh" _ACAWK cat >>"$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { D["PACKAGE_NAME"]=" \"\"" D["PACKAGE_TARNAME"]=" \"\"" D["PACKAGE_VERSION"]=" \"\"" D["PACKAGE_STRING"]=" \"\"" D["PACKAGE_BUGREPORT"]=" \"\"" D["STDC_HEADERS"]=" 1" D["HAVE_SYS_TYPES_H"]=" 1" D["HAVE_SYS_STAT_H"]=" 1" D["HAVE_STDLIB_H"]=" 1" D["HAVE_STRING_H"]=" 1" D["HAVE_MEMORY_H"]=" 1" D["HAVE_STRINGS_H"]=" 1" D["HAVE_INTTYPES_H"]=" 1" D["HAVE_STDINT_H"]=" 1" D["HAVE_UNISTD_H"]=" 1" D["HAVE_STRING_H"]=" 1" D["HAVE_SNPRINTF"]=" 1" D["STDC_HEADERS"]=" 1" D["HAVE_STRTOQ"]=" 1" D["HAVE_STRTOLL"]=" 1" D["SIZEOF_LONG"]=" 4" D["HAVE_INT64"]=" 1" D["HAVE_TCL_H"]=" 1" D["HAVE_TCLINT_H"]=" 1" D["HAVE_LIBTCL8_5"]=" 1" D["HAVE_TK_H"]=" 1" D["HAVE_LIBTK8_5"]=" 1" D["HAVE_OTCL_H"]=" 1" D["HAVE_LIBOTCL1_14"]=" 1" D["HAVE_ZLIB_H"]=" 1" D["HAVE_LIBZ1_1_3"]=" 1" for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\t (]|$)/ { line = $ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} ac_datarootdir_hack=' s&@datadir@&${datarootdir}&g s&@docdir@&${datarootdir}/doc/${PACKAGE}&g s&@infodir@&${datarootdir}/info&g s&@localedir@&${datarootdir}/locale&g s&@mandir@&${datarootdir}/man&g s&\${datarootdir}&${prefix}/share&g' ;; esac ac_sed_extra="/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// } :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi ;; esac done # for ac_tag { (exit 0); exit 0; } tclcl-1.20/config.sub0000775000076400007660000007763110566147656013437 0ustar tomhnsnam#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-01-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tclcl-1.20/configure0000775000076400007660000077217411440616612013350 0ustar tomhnsnam#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= 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=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # 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 after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, 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 # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (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 sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # 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` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="Tcl.cc" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM V_LSSCRIPT V_NS_TCL_LIB_STL V_STLOBJ V_AR V_RANLIB V_OBJ_CRYPT V_BROKEN_OBJ V_OBJ V_INCLUDE V_TARCMD V_SHELL V_SIGRET V_DEFINE V_LIB V_TAR_EXTRA V_CCOPT V_ALL V_LIB_TK V_LIB_TCL V_LIB_OTCL V_LIB_TCLCL V_TAR_TARGET V_STATIC V_DEFINES V_LIBS V_INCLUDES V_LIB_X11 V_INCLUDE_X11 V_LIBRARY_TK V_TKDOSNAMES V_LIBRARY_TCL V_TCLSH V_TCL_LIBRARY_FILES RANLIB EGREP GREP CPP ac_ct_CXX CXXFLAGS CXX OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_defaultoptions enable_release enable_debug enable_devel enable_static with_tcl with_tcl_ver with_tk with_tk_ver with_otcl with_zlib ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_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 && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 $as_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 ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-release do a release build --enable-debug build with debugging enabled --enable-devel do a development build --enable-static enable/disable static building Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) -with-defaultoptions=filename use as default options file --with-tcl=path specify a pathname for tcl --with-tcl-ver=path specify the version of tcl/tk --with-tk=path specify a pathname for tk --with-tk-ver=path specify the version of tcl/tk --with-otcl=path specify a pathname for otcl --with-zlib=path specify a pathname for zlib Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags 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 ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) 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_arg'" ;; 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: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # 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 an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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 { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_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 ac_config_headers="$ac_config_headers config.h:config.h.in" V_PROG="libtclcl.a" V_ALL="$V_PROG" # Check whether --with-defaultoptions was given. if test "${with_defaultoptions+set}" = set; then withval=$with_defaultoptions; else with_defaultoptions=".configure" fi if test "$with_defaultoptions" = "yes" ; then with_defaultoptions=".configure" elif test "$with_defaultoptions" = "no" ; then with_defaultoptions="" fi if test -n "$with_defaultoptions" ; then if test -f "$with_defaultoptions" ; then read arglist < $with_defaultoptions if test -n "$arglist" ; then arguments="$0 $arglist $* --without-defaultoptions" echo "Restarting: $arguments" exec $arguments fi else if test "$with_defaultoptions" = ".configure" ; then echo No .configure file found in current directory echo Continuing with default options... else echo Cannot find file $with_defaultoptions echo Aborting configure... exit 1 fi fi fi ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 $as_echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_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. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_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.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_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 # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&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' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_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 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_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 $as_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 { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_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 { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_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 { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" 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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" 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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=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 -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac 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=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" 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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" 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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_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 { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_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 nonexistent 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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_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 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_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 { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >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 #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in string.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_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 { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done V_INCLUDE="" V_LIB="" V_OBJ="" V_BROKEN_OBJ="strtol.o strtoul.o" V_SHELL="" V_TARCMD="tar cfh" V_SIGRET="void" { $as_echo "$as_me:$LINENO: checking for main in -lXbsd" >&5 $as_echo_n "checking for main in -lXbsd... " >&6; } if test "${ac_cv_lib_Xbsd_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXbsd $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 () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_Xbsd_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xbsd_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xbsd_main" >&5 $as_echo "$ac_cv_lib_Xbsd_main" >&6; } if test "x$ac_cv_lib_Xbsd_main" = x""yes; then V_LIB="$V_LIB -lXbsd" fi { $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } if test "${ac_cv_lib_socket_socket+set}" = set; then $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_socket_socket=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_socket=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 $as_echo "$ac_cv_lib_socket_socket" >&6; } if test "x$ac_cv_lib_socket_socket" = x""yes; then V_LIB="$V_LIB -lsocket" fi { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_nsl_gethostbyname=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then V_LIB="$V_LIB -lnsl" fi { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_intl_dcgettext=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dcgettext=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then V_LIB="$V_LIB -lintl" fi { $as_echo "$as_me:$LINENO: checking for getnodebyname in -ldnet_stub" >&5 $as_echo_n "checking for getnodebyname in -ldnet_stub... " >&6; } if test "${ac_cv_lib_dnet_stub_getnodebyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getnodebyname (); int main () { return getnodebyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dnet_stub_getnodebyname=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_stub_getnodebyname=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_getnodebyname" >&5 $as_echo "$ac_cv_lib_dnet_stub_getnodebyname" >&6; } if test "x$ac_cv_lib_dnet_stub_getnodebyname" = x""yes; then V_LIB="$V_LIB -ldnet_stub" fi V_TAR_EXTRA="" V_DEFINE="" V_RANLIB=ranlib V_AR="ar cr" #XXX V_SHM="-DUSE_SHM" # Check whether --enable-release was given. if test "${enable_release+set}" = set; then enableval=$enable_release; else enable_release="no" fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then enableval=$enable_debug; else enable_debug="no" fi # Check whether --enable-devel was given. if test "${enable_devel+set}" = set; then enableval=$enable_devel; else enable_devel="no" fi if test "$enable_devel" = "yes" ; then enable_debug="yes" fi if test -f .devel -o "$enable_devel" = "yes"; then OonS="" else if test "$CC" = gcc ; then { $as_echo "$as_me:$LINENO: checking that $CXX can handle -O2" >&5 $as_echo_n "checking that $CXX can handle -O2... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #if __GNUC__ < 2 || __GNUC_MINOR__ < 8 /* gcc */ error #endif #if __GNUC_MINOR__ < 92 /* egcs */ int error; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } OonS="-O2" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Optimize on Steroids { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi if test "$enable_debug" = "yes" ; then V_CCOPT="-g" if test "$CC" = gcc ; then V_CCOPT="$V_CCOPT -Wall -Wno-write-strings -Wno-parentheses -Werror" V_DEFINE="$V_DEFINE -fsigned-char -fno-inline" fi else V_CCOPT="$OonS" V_DEFINE="$V_DEFINE -DNDEBUG" if test "$CC" = gcc ; then V_CCOPT="$V_CCOPT -Wall -Wno-write-strings -Wno-parentheses" fi fi # XXX Some stupid sh on solaris does not set PWD correctly, i.e., # after chdir $PWD remains at the parent directory. :( # We'll just do this every time. Doesn't hurt anyway. PWD=`pwd` solaris="" if test `echo "$target_os" | sed 's/\..*//'` = solaris2 ; then solaris="yes" fi #places="Tcl \ # /usr/src/local/Tcl \ # ../../Tcl \ # ../Tcl" #for d in $places; do # if test -f $d/Tcl.h ; then # V_LIB="$V_LIB $d/libTcl.a" # V_INCLUDE="$V_INCLUDE -I$d" # break # fi #done # we now default to non-static linking, although if the "magic" file # .devel exists in the current directory, we try for a static link # under the assumption we are trying to produce re-distributable # binaries. # # Yatin: Moved this code here from configure.in.tail, since the mash # configure.in file needs to set this variable appropriately before invoking # configure.in.tail and the presence of the .devel file can mess things up for # the linux release build # # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; else enable_static="" fi if test -f .devel -o "$enable_devel" = "yes"; then echo -n "Development version: considering static" if test "$enable_static" != no; then echo ", and static enabled" V_STATIC="-static" else echo ", but static disabled anyway" fi else V_STATIC="" fi # Checking validity of STL { $as_echo "$as_me:$LINENO: checking standard STL is available" >&5 $as_echo_n "checking standard STL is available... " >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu enable_stl="no" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include template class tlist : public list <_T> {}; int main () { return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } enable_stl="yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi rm -f core 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 # This can be extended to support compilation-time module selection V_STLOBJ="" V_LSSCRIPT="" if test "$enable_stl" = "yes" ; then #V_STLOBJ="linkstate/ls.o linkstate/rtProtoLS.o" #V_LSSCRIPT="source ../rtglib/ns-rtProtoLS.tcl" V_DEFINE="$V_DEFINE -DHAVE_STL" V_STLOBJ='$(OBJ_STL)' V_NS_TCL_LIB_STL='$(NS_TCL_LIB_STL)' else V_STLOBJ="" V_NS_TCL_LIB_STL="" fi # This is required by configure.in.tcl to provide absolute pathnames for # tclsh, and configure.in.tail to absolutize V_INCLUDES and V_LIBS. absolutize() { case $1 in -L*) p=`echo $1 | sed 's/^-L//'` ;; -I*) p=`echo $1 | sed 's/^-I//'` ;; *) p=$1 ;; esac d=`dirname $p` f=`basename $p` ad=`( cd $d pwd )` case $1 in -L*) echo -L$ad/$f ;; -I*) echo -I$ad/$f ;; *) echo $ad/$f ;; esac } # These must follow configure.in.head because they mess # with $*. if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi # (install is in tail) for ac_func in snprintf do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $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 #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >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 #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi for ac_func in strtoq strtoll do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $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 #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done INT64_T_ALTERNATIVE=none HAVE_SUPPORTING_FUNC=false # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:$LINENO: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if test "${ac_cv_sizeof_long+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. 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 int main () { static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do 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 int main () { static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else $as_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. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long int) (sizeof (long))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do 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 int main () { static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` 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 int main () { static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; '') if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } else ac_cv_sizeof_long=0 fi ;; esac 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 static long int longval () { return (long int) (sizeof (long)); } static unsigned long int ulongval () { return (long int) (sizeof (long)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (long))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (long)))) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (long)))) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } else ac_cv_sizeof_long=0 fi fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF if test $ac_cv_sizeof_long -ge 8 then INT64_T_ALTERNATIVE=long { $as_echo "$as_me:$LINENO: checking for strtol" >&5 $as_echo_n "checking for strtol... " >&6; } if test "${ac_cv_func_strtol+set}" = set; then $as_echo_n "(cached) " >&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 strtol to an innocuous variant, in case declares strtol. For example, HP-UX 11i declares gettimeofday. */ #define strtol innocuous_strtol /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strtol (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef strtol /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strtol (); /* 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_strtol || defined __stub___strtol choke me #endif int main () { return strtol (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_strtol=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_strtol=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_strtol" >&5 $as_echo "$ac_cv_func_strtol" >&6; } fi { $as_echo "$as_me:$LINENO: checking for __int64_t" >&5 $as_echo_n "checking for __int64_t... " >&6; } if test "${nsnam_cv_int64_t_HAVE___INT64_T+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then nsnam_cv_int64_t_HAVE___INT64_T=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ main() { __int64_t x; exit (sizeof(x) >= 8 ? 0 : 1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then nsnam_cv_int64_t_HAVE___INT64_T=yes else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) nsnam_cv_int64_t_HAVE___INT64_T=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:$LINENO: result: $nsnam_cv_int64_t_HAVE___INT64_T" >&5 $as_echo "$nsnam_cv_int64_t_HAVE___INT64_T" >&6; } if test x"$nsnam_cv_int64_t_HAVE___INT64_T" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then INT64_T_ALTERNATIVE=__int64_t fi { $as_echo "$as_me:$LINENO: checking for long long" >&5 $as_echo_n "checking for long long... " >&6; } if test "${nsnam_cv_int64_t_HAVE_LONG_LONG+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then nsnam_cv_int64_t_HAVE_LONG_LONG=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ main() { long long x; exit (sizeof(x) >= 8 ? 0 : 1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then nsnam_cv_int64_t_HAVE_LONG_LONG=yes else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) nsnam_cv_int64_t_HAVE_LONG_LONG=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:$LINENO: result: $nsnam_cv_int64_t_HAVE_LONG_LONG" >&5 $as_echo "$nsnam_cv_int64_t_HAVE_LONG_LONG" >&6; } if test x"$nsnam_cv_int64_t_HAVE_LONG_LONG" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then INT64_T_ALTERNATIVE="long long" fi { $as_echo "$as_me:$LINENO: checking for int64_t" >&5 $as_echo_n "checking for int64_t... " >&6; } if test "${ac_cv_type_int64_t+set}" = set; then $as_echo_n "(cached) " >&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 #if STDC_HEADERS #include #include #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "(^|[^a-zA-Z_0-9])int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then ac_cv_type_int64_t=yes else ac_cv_type_int64_t=no fi rm -f conftest* fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_int64_t" >&5 $as_echo "$ac_cv_type_int64_t" >&6; } if test $ac_cv_type_int64_t = no; then cat >>confdefs.h <<_ACEOF #define int64_t $INT64_T_ALTERNATIVE _ACEOF fi { $as_echo "$as_me:$LINENO: checking which kind of 64-bit int to use" >&5 $as_echo_n "checking which kind of 64-bit int to use... " >&6; } if test $ac_cv_type_int64_t = yes -o "$INT64_T_ALTERNATIVE" != none then if test "$INT64_T_ALTERNATIVE" = long -o "$ac_cv_func_strtoq" = yes -o "$ac_cv_func_strtoll" = yes then cat >>confdefs.h <<\_ACEOF #define HAVE_INT64 1 _ACEOF if test $ac_cv_type_int64_t = yes then { $as_echo "$as_me:$LINENO: result: int64_t" >&5 $as_echo "int64_t" >&6; } else { $as_echo "$as_me:$LINENO: result: $INT64_T_ALTERNATIVE" >&5 $as_echo "$INT64_T_ALTERNATIVE" >&6; } fi else { $as_echo "$as_me:$LINENO: result: missing strto 64-bit-type" >&5 $as_echo "missing strto 64-bit-type" >&6; } fi else { $as_echo "$as_me:$LINENO: result: none" >&5 $as_echo "none" >&6; } fi # Check whether --with-tcl was given. if test "${with_tcl+set}" = set; then withval=$with_tcl; d=$withval else d="" fi # Check whether --with-tcl-ver was given. if test "${with_tcl_ver+set}" = set; then withval=$with_tcl_ver; TCL_VERS=$withval else TCL_VERS=`echo "puts [info patchlevel]" | tclsh` fi TCL_HI_VERS=`echo $TCL_VERS | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1.\2/'` TCL_MAJOR_VERS=`echo $TCL_VERS | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` TCL_ALT_VERS=8.5 TCL_OLD_VERS=8.4 TCL_OLD_ALT_VERS=`echo $TCL_OLD_VERS | sed 's/\.//'` TCL_TCL_PLACES_D="$d \ $d/lib64/tcl$TCL_HI_VERS \ $d/lib64/tcl$TCL_VERS \ $d/lib64/tcl$TCL_ALT_VERS \ $d/lib64/tcl \ $d/lib/tcl$TCL_HI_VERS \ $d/lib/tcl$TCL_VERS \ $d/lib/tcl$TCL_ALT_VERS \ $d/lib/tcl \ $d/../lib/tcl$TCL_HI_VERS \ $d/../lib/tcl$TCL_VERS \ $d/../lib/tcl$TCL_ALT_VERS \ $d/lib/tcl$TCL_OLD_VERS \ $d/lib/tcl$TCL_OLD_ALT_VERS \ $d/../lib/tcl$TCL_OLD_VERS \ $d/../lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ $d/lib64 \ $d/lib \ $d/library \ " TCL_TCL_PLACES="../lib/tcl$TCL_HI_VERS \ ../lib/tcl$TCL_ALT_VERS \ ../lib/tcl$TCL_VERS \ ../lib/tcl \ ../tcl$TCL_HI_VERS/library \ ../tcl$TCL_VERS/library \ ../tcl$TCL_ALT_VERS/library \ /usr/lib64/tcl$TCL_VERS \ /usr/lib64/tcl$TCL_HI_VERS \ /usr/lib64/tcl$TCL_ALT_VERS \ /usr/lib64/tcl \ /usr/lib/tcl$TCL_VERS \ /usr/lib/tcl$TCL_HI_VERS \ /usr/lib/tcl$TCL_ALT_VERS \ /usr/lib/tcl \ /usr/share/tcl$TCL_VERS \ /usr/share/tcl$TCL_HI_VERS \ /usr/share/tcl$TCL_ALT_VERS \ /usr/local/src/tcl$TCL_VERS \ /usr/local/src/tcl$TCL_HI_VERS \ /usr/local/src/tcl$TCL_ALT_VERS \ /usr/share/tcltk/tcl$TCL_VERS \ /usr/share/tcltk/tcl$TCL_HI_VERS \ /usr/share/tcltk/tcl$TCL_ALT_VERS \ /usr/share/tcl \ /lib/tcl$TCL_VERS \ /lib/tcl$TCL_HI_VERS \ /lib/tcl$TCL_ALT_VERS \ /usr/lib/tcl$TCL_OLD_VERS \ /usr/lib/tcl$TCL_OLD_ALT_VERS \ /lib/tcl$TCL_OLD_VERS \ /lib/tcl$TCL_OLD_ALT_VERS \ /usr/lib \ /usr/src/local/tcl$TCL_VERS/library \ /usr/src/local/tcl$TCL_HI_VERS/library \ /usr/src/local/tcl$TCL_ALT_VERS/library \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/local/include/tcl$TCL_VERS \ /usr/local/include/tcl$TCL_HI_VERS \ /usr/local/include/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/library \ ../tcl$TCL_OLD_ALT_VERS/library \ /usr/src/local/tcl$TCL_OLD_VERS/library \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/library \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/include/tcl$TCL_OLD_VERS \ /usr/local/include/tcl$TCL_OLD_ALT_VERS \ /usr/local/include \ $prefix/include \ $prefix/lib/tcl \ $x_includes/tk \ $x_includes \ /usr/contrib/include \ /usr/include" TCL_H_PLACES_D="$d/generic \ $d/unix \ $d/include/tcl$TCL_HI_VERS \ $d/include/tcl$TCL_VERS \ $d/include/tcl$TCL_ALT_VERS \ $d/include \ /usr/local/include \ " TCL_H_PLACES=" \ ../include \ ../tcl$TCL_VERS/unix \ ../tcl$TCL_ALT_VERS/unix \ ../tcl$TCL_HI_VERS/generic \ ../tcl$TCL_VERS/generic \ ../tcl$TCL_ALT_VERS/generic \ /usr/src/local/tcl$TCL_VERS/generic \ /usr/src/local/tcl$TCL_HI_VERS/generic \ /usr/src/local/tcl$TCL_ALT_VERS/generic \ /usr/local/src/tcl$TCL_VERS/generic \ /usr/local/src/tcl$TCL_HI_VERS/generic \ /usr/local/src/tcl$TCL_ALT_VERS/generic \ /usr/src/local/tcl$TCL_VERS/unix \ /usr/src/local/tcl$TCL_HI_VERS/unix \ /usr/src/local/tcl$TCL_ALT_VERS/unix \ /usr/contrib/include \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/local/include/tcl$TCL_VERS \ /usr/local/include/tcl$TCL_HI_VERS \ /usr/local/include/tcl$TCL_ALT_VERS \ /usr/local/include \ /import/tcl/include/tcl$TCL_VERS \ /import/tcl/include/tcl$TCL_HI_VERS \ /import/tcl/include/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/generic \ ../tcl$TCL_OLD_ALT_VERS/generic \ /usr/src/local/tcl$TCL_OLD_VERS/generic \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/generic \ ../tcl$TCL_OLD_VERS/unix \ ../tcl$TCL_OLD_ALT_VERS/unix \ /usr/src/local/tcl$TCL_OLD_VERS/unix \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/unix \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/include/tcl$TCL_OLD_VERS \ /usr/local/include/tcl$TCL_OLD_ALT_VERS \ /import/tcl/include/tcl$TCL_OLD_VERS \ /import/tcl/include/tcl$TCL_OLD_ALT_VERS \ $prefix/include \ $x_includes/tk \ $x_includes \ /usr/include \ /usr/include/tcl$TCL_VERS/tcl-private/generic \ /usr/include/tcl$TCL_HI_VERS/tcl-private/generic \ /usr/include/tcl$TCL_ALT_VERS/tcl-private/generic \ /usr/include/tcl-private/generic \ /usr/include/tcl$TCL_VERS \ /usr/include/tcl$TCL_HI_VERS \ /usr/include/tcl$TCL_ALT_VERS \ /usr/include/tcl" TCL_LIB_PLACES_D="$d \ $d/lib \ $d/unix" TCL_LIB_PLACES=" \ ../lib \ ../tcl$TCL_VERS/unix \ ../tcl$TCL_HI_VERS/unix \ ../tcl$TCL_ALT_VERS/unix \ /usr/src/local/tcl$TCL_VERS/unix \ /usr/src/local/tcl$TCL_HI_VERS/unix \ /usr/src/local/tcl$TCL_ALT_VERS/unix \ /usr/local/src/tcl$TCL_VERS/unix \ /usr/local/src/tcl$TCL_HI_VERS/unix \ /usr/local/src/tcl$TCL_ALT_VERS/unix \ /usr/contrib/lib \ /usr/local/lib/tcl$TCL_VERS \ /usr/local/lib/tcl$TCL_HI_VERS \ /usr/local/lib/tcl$TCL_ALT_VERS \ /usr/lib64/tcl$TCL_VERS \ /usr/lib64/tcl$TCL_HI_VERS \ /usr/lib64/tcl$TCL_ALT_VERS \ /usr/lib/tcl$TCL_VERS \ /usr/lib/tcl$TCL_HI_VERS \ /usr/lib/tcl$TCL_ALT_VERS \ ../tcl$TCL_OLD_VERS/unix \ ../tcl$TCL_OLD_ALT_VERS/unix \ /usr/src/local/tcl$TCL_OLD_VERS/unix \ /usr/src/local/tcl$TCL_OLD_ALT_VERS/unix \ /usr/local/lib/tcl$TCL_OLD_VERS \ /usr/local/lib/tcl$TCL_OLD_ALT_VERS \ /usr/lib/tcl$TCL_OLD_VERS \ /usr/lib/tcl$TCL_OLD_ALT_VERS \ /usr/local/lib \ $prefix/lib \ $x_libs/tk \ $x_libs \ /usr/lib64 \ /usr/lib \ " NS_PACKAGE_tcl_UNDERWAY=false NS_PACKAGE_tcl_COMPLETE=true { $as_echo "$as_me:$LINENO: checking for tcl.h" >&5 $as_echo_n "checking for tcl.h... " >&6; } if test "x$d" = "xno"; then : disable header V_INCLUDE_TCL=FAIL NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TCL_H_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TCL_H_PLACES_D" fi V_INCLUDE_TCL="" for dir in $places; do if test -r $dir/tcl.h; then V_INCLUDE_TCL="-I$dir" break fi done if test "FAIL$V_INCLUDE_TCL" = "FAIL" ; then NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else ac_tr_hdr=HAVE_`echo tcl.h | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >>confdefs.h <<_ACEOF #define $ac_tr_hdr 1 _ACEOF V_INCLUDES="$V_INCLUDE_TCL $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_tcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_INCLUDE_TCL" >&5 $as_echo "$V_INCLUDE_TCL" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for tclInt.h" >&5 $as_echo_n "checking for tclInt.h... " >&6; } if test "x$d" = "xno"; then : disable header V_INCLUDE_TCL=FAIL NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TCL_H_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TCL_H_PLACES_D" fi V_INCLUDE_TCL="" for dir in $places; do if test -r $dir/tclInt.h; then V_INCLUDE_TCL="-I$dir" break fi done if test "FAIL$V_INCLUDE_TCL" = "FAIL" ; then NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else ac_tr_hdr=HAVE_`echo tclInt.h | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >>confdefs.h <<_ACEOF #define $ac_tr_hdr 1 _ACEOF V_INCLUDES="$V_INCLUDE_TCL $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_tcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_INCLUDE_TCL" >&5 $as_echo "$V_INCLUDE_TCL" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for libtcl$TCL_HI_VERS" >&5 $as_echo_n "checking for libtcl$TCL_HI_VERS... " >&6; } if test "x$d" = "xno"; then : disable library V_LIB_TCL=FAIL NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TCL_LIB_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TCL_LIB_PLACES_D" fi V_LIB_TCL="" full_lib_name="tcl$TCL_HI_VERS" simple_lib_name=`echo $full_lib_name | sed -e 's/\.//'` other_simple_lib_name=`echo $full_lib_name | sed -e 's/\./_/'` simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'` double_break=false for dir in $places; do for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name do if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then V_LIB_TCL="-L$dir -l$file" double_break=true break fi done if $double_break; then break fi done if test "FAIL$V_LIB_TCL" = "FAIL" ; then NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else if test "$solaris"; then V_LIB_TCL="-R$dir $V_LIB_TCL" fi ac_tr_lib=HAVE_LIB`echo tcl$TCL_HI_VERS | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >>confdefs.h <<_ACEOF #define $ac_tr_lib 1 _ACEOF V_LIBS="$V_LIB_TCL $V_LIBS" V_DEFINES="-D$ac_tr_lib $V_DEFINES" NS_PACKAGE_tcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIB_TCL" >&5 $as_echo "$V_LIB_TCL" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for init.tcl" >&5 $as_echo_n "checking for init.tcl... " >&6; } if test "x$d" = "xno"; then : disable header V_LIBRARY_TCL=FAIL NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TCL_TCL_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TCL_TCL_PLACES_D" fi V_LIBRARY_TCL="" for dir in $places; do if test -r $dir/init.tcl; then V_LIBRARY_TCL="$dir" break fi done if test "FAIL$V_LIBRARY_TCL" = "FAIL" ; then NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else NS_PACKAGE_tcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIBRARY_TCL" >&5 $as_echo "$V_LIBRARY_TCL" >&6; } fi fi tcl_http_library_dir=/dev/null tcl_http_places=" \ $V_LIBRARY_TCL \ $V_LIBRARY_TCL/http \ $V_LIBRARY_TCL/http2.5 \ $V_LIBRARY_TCL/http2.4 \ $V_LIBRARY_TCL/http2.3 \ $V_LIBRARY_TCL/http2.1 \ $V_LIBRARY_TCL/http2.0 \ $V_LIBRARY_TCL/http1.0 \ " { $as_echo "$as_me:$LINENO: checking for http.tcl" >&5 $as_echo_n "checking for http.tcl... " >&6; } if test "x""" = "xno"; then : disable header tcl_http_library_dir=FAIL NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$tcl_http_places" if test "x""" != "x" -a "x""" != xyes; then if test ! -d ""; then { { $as_echo "$as_me:$LINENO: error: \"\" is not a directory" >&5 $as_echo "$as_me: error: \"\" is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="""" fi tcl_http_library_dir="" for dir in $places; do if test -r $dir/http.tcl; then tcl_http_library_dir="$dir" break fi done if test "FAIL$tcl_http_library_dir" = "FAIL" ; then NS_PACKAGE_tcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else NS_PACKAGE_tcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $tcl_http_library_dir" >&5 $as_echo "$tcl_http_library_dir" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking Tcl http.tcl library" >&5 $as_echo_n "checking Tcl http.tcl library... " >&6; } if test -f $tcl_http_library_dir/http.tcl then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { { $as_echo "$as_me:$LINENO: error: Couldn't find http.tcl in $tcl_http_places" >&5 $as_echo "$as_me: error: Couldn't find http.tcl in $tcl_http_places" >&2;} { (exit 1); exit 1; }; } fi V_TCL_LIBRARY_FILES="\$(TCL_BASE_LIBRARY_FILES) $tcl_http_library_dir/http.tcl" # # check for tclsh # oldpath=$PATH # $d/unix works if $d is the 8.0 distribution # $d/bin is for the ns-allinone distribution (kind of hacky, isn't it?) PATH=../bin:../tcl$TCL_HI_VERS/unix:../tcl$TCL_VERS/unix:$d/unix:$d/bin:$PATH for ac_prog in tclsh$TCL_VERS tclsh$TCL_HI_VERS tclsh tclsh$TCL_OLD_VERS do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_V_TCLSH+set}" = set; then $as_echo_n "(cached) " >&6 else case $V_TCLSH in [\\/]* | ?:[\\/]*) ac_cv_path_V_TCLSH="$V_TCLSH" # Let the user override the test with a path. ;; *) 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_V_TCLSH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi V_TCLSH=$ac_cv_path_V_TCLSH if test -n "$V_TCLSH"; then { $as_echo "$as_me:$LINENO: result: $V_TCLSH" >&5 $as_echo "$V_TCLSH" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$V_TCLSH" && break done test -n "$V_TCLSH" || V_TCLSH="no" if test x"$V_TCLSH" = xno then # out of luck NS_PACKAGE_tcl_COMPLETE=false fi # absolutize it V_TCLSH=`absolutize $V_TCLSH` PATH=$oldpath NS_PACKAGE_tcl_VALID=false if $NS_PACKAGE_tcl_UNDERWAY; then if $NS_PACKAGE_tcl_COMPLETE; then : All components of tcl found. NS_PACKAGE_tcl_VALID=true else { { $as_echo "$as_me:$LINENO: error: Installation of tcl seems incomplete or can't be found automatically. Please correct the problem by telling configure where tcl is using the argument --with-tcl=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-tcl=no." >&5 $as_echo "$as_me: error: Installation of tcl seems incomplete or can't be found automatically. Please correct the problem by telling configure where tcl is using the argument --with-tcl=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-tcl=no." >&2;} { (exit 1); exit 1; }; } fi fi if test "xyes" = xyes; then if $NS_PACKAGE_tcl_VALID; then : else { { $as_echo "$as_me:$LINENO: error: tcl is required but could not be completely found. Please correct the problem by telling configure where tcl is using the argument --with-tcl=/path/to/package, or the package is not required, disable it with --with-tcl=no." >&5 $as_echo "$as_me: error: tcl is required but could not be completely found. Please correct the problem by telling configure where tcl is using the argument --with-tcl=/path/to/package, or the package is not required, disable it with --with-tcl=no." >&2;} { (exit 1); exit 1; }; } fi fi # Check whether --with-tk was given. if test "${with_tk+set}" = set; then withval=$with_tk; d=$withval else d="" fi # Check whether --with-tk-ver was given. if test "${with_tk_ver+set}" = set; then withval=$with_tk_ver; TK_VERS=$withval else TK_VERS=$TCL_VERS fi TK_HI_VERS=`echo $TK_VERS | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1.\2/'` TK_MAJOR_VERS=`echo $TK_VERS | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` TK_ALT_VERS=8.5 TK_OLD_VERS=8.4 TK_OLD_ALT_VERS=`echo $TK_OLD_VERS | sed 's/\.//'` TK_TCL_PLACES_D="$d \ $d/lib64/tk$TK_VERS \ $d/lib64/tk$TK_ALT_VERS \ $d/lib64/tk$TK_HI_VERS \ $d/lib/tk$TK_VERS \ $d/lib/tk$TK_ALT_VERS \ $d/lib/tk$TK_HI_VERS \ $d/library \ $d/lib/tk \ $d/../lib/tk$TK_VERS \ $d/../lib/tk$TK_ALT_VERS \ $d/../lib/tk$TK_HI_VERS \ $d/../lib/tk \ $d/lib/tk$TK_OLD_VERS \ $d/lib/tk$TK_OLD_ALT_VERS \ $d/../lib/tk$TK_OLD_VERS \ $d/../lib/tk$TK_OLD_ALT_VERS \ $d/../lib/tk \ $d/lib \ $d/library" TK_TCL_PLACES=" \ ../lib/tk$TK_HI_VERS \ ../lib/tk$TK_VERS \ ../lib/tk$TK_ALT_VERS \ ../tk$TK_VERS/library \ ../tk$TK_ALT_VERS/library \ ../tk$TK_HI_VERS/library \ ../tk/library \ /usr/src/local/tk$TK_VERS/library \ /usr/src/local/tk$TK_ALT_VERS/library \ /usr/src/local/tk$TK_HI_VERS/library \ /usr/contrib/include \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ /usr/local/include/tk$TK_VERS \ /usr/local/include/tk$TK_ALT_VERS \ /usr/local/include/tk$TK_HI_VERS \ /usr/local/include \ /usr/lib64/tk$TK_VERS \ /usr/lib64/tk$TK_ALT_VERS \ /usr/lib64/tk$TK_HI_VERS \ /usr/lib64/tk \ /usr/lib/tk$TK_VERS \ /usr/lib/tk$TK_ALT_VERS \ /usr/lib/tk$TK_HI_VERS \ /usr/lib/tk \ /usr/share/tcltk/tk$TK_VERS \ /usr/share/tcltk/tk$TK_ALT_VERS \ /usr/share/tcltk/tk$TK_HI_VERS \ /usr/share/tk$TK_VERS \ /usr/share/tk$TK_ALT_VERS \ /usr/share/tk$TK_HI_VERS \ /usr/share/tk \ ../tk$TK_OLD_VERS/library \ ../tk$TK_OLD_ALT_VERS/library \ /usr/src/local/tk$TK_OLD_VERS/library \ /usr/src/local/tk$TK_OLD_ALT_VERS/library \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/include/tk$TK_OLD_VERS \ /usr/local/include/tk$TK_OLD_ALT_VERS \ /usr/lib/tk$TK_OLD_VERS \ /usr/lib/tk$TK_OLD_ALT_VERS \ $prefix/include \ $prefix/lib/tk \ $x_includes/tk \ $x_includes \ /usr/include" TK_H_PLACES_D="$d \ $d/generic \ $d/../include/tk$TK_VERS \ $d/../include/tk$TK_HI_VERS \ $d/../include/tk$TK_OLD_VERS \ $d/include/tk$TK_VERS \ $d/include/tk$TK_HI_VERS \ $d/include/tk$TK_OLD_VERS \ $d/include" TK_H_PLACES=" \ ../include \ ../tk$TK_VERS/generic \ ../tk$TK_ALT_VERS/generic \ ../tk$TK_HI_VERS/generic \ /usr/src/local/tk$TK_VERS/generic \ /usr/src/local/tk$TK_ALT_VERS/generic \ /usr/src/local/tk$TK_HI_VERS/generic \ /usr/contrib/include \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ /usr/local/include/tk$TK_VERS \ /usr/local/include/tk$TK_ALT_VERS \ /usr/local/include/tk$TK_HI_VERS \ /usr/local/include \ /import/tk/include/tk$TK_VERS \ /import/tk/include/tk$TK_ALT_VERS \ /import/tk/include/tk$TK_HI_VERS \ ../tk$TK_OLD_VERS/generic \ ../tk$TK_OLD_ALT_VERS/generic \ /usr/src/local/tk$TK_OLD_VERS/generic \ /usr/src/local/tk$TK_OLD_ALT_VERS/generic \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/include/tk$TK_OLD_VERS \ /usr/local/include/tk$TK_OLD_ALT_VERS \ /import/tk/include/tk$TK_OLD_VERS \ /import/tk/include/tk$TK_OLD_ALT_VERS \ $prefix/include \ $x_includes/tk \ $x_includes \ /usr/include \ /usr/include/tcl \ /usr/include/tcl$TK_VERS \ /usr/include/tcl$TK_ALT_VERS \ /usr/include/tcl$TK_HI_VERS \ " TK_LIB_PLACES_D="$d \ $d/lib \ $d/unix" TK_LIB_PLACES=" \ ../lib \ ../lib/tk$TK_HI_VERS \ ../lib/tk$TK_VERS \ ../lib/tk$TK_ALT_VERS \ ../tk$TK_VERS/unix \ ../tk$TK_ALT_VERS/unix \ ../tk$TK_HI_VERS/unix \ /usr/src/local/tk$TK_VERS/unix \ /usr/src/local/tk$TK_ALT_VERS/unix \ /usr/src/local/tk$TK_HI_VERS/unix \ /usr/contrib/lib \ /usr/local/lib/tk$TK_VERS \ /usr/local/lib/tk$TK_ALT_VERS \ /usr/local/lib/tk$TK_HI_VERS \ ../tk$TK_OLD_VERS/unix \ ../tk$TK_OLD_ALT_VERS/unix \ /usr/src/local/tk$TK_OLD_VERS/unix \ /usr/src/local/tk$TK_OLD_ALT_VERS/unix \ /usr/local/lib/tk$TK_OLD_VERS \ /usr/local/lib/tk$TK_OLD_ALT_VERS \ /usr/local/lib \ $prefix/lib \ $x_libs/tk \ $x_libs \ /usr/lib64 \ /usr/lib" NS_PACKAGE_tk_UNDERWAY=false NS_PACKAGE_tk_COMPLETE=true { $as_echo "$as_me:$LINENO: checking for tk.h" >&5 $as_echo_n "checking for tk.h... " >&6; } if test "x$d" = "xno"; then : disable header V_INCLUDE_TK=FAIL NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TK_H_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TK_H_PLACES_D" fi V_INCLUDE_TK="" for dir in $places; do if test -r $dir/tk.h; then V_INCLUDE_TK="-I$dir" break fi done if test "FAIL$V_INCLUDE_TK" = "FAIL" ; then NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else ac_tr_hdr=HAVE_`echo tk.h | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >>confdefs.h <<_ACEOF #define $ac_tr_hdr 1 _ACEOF V_INCLUDES="$V_INCLUDE_TK $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_tk_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_INCLUDE_TK" >&5 $as_echo "$V_INCLUDE_TK" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for libtk$TK_HI_VERS" >&5 $as_echo_n "checking for libtk$TK_HI_VERS... " >&6; } if test "x$d" = "xno"; then : disable library V_LIB_TK=FAIL NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TK_LIB_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TK_LIB_PLACES_D" fi V_LIB_TK="" full_lib_name="tk$TK_HI_VERS" simple_lib_name=`echo $full_lib_name | sed -e 's/\.//'` other_simple_lib_name=`echo $full_lib_name | sed -e 's/\./_/'` simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'` double_break=false for dir in $places; do for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name do if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then V_LIB_TK="-L$dir -l$file" double_break=true break fi done if $double_break; then break fi done if test "FAIL$V_LIB_TK" = "FAIL" ; then NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else if test "$solaris"; then V_LIB_TK="-R$dir $V_LIB_TK" fi ac_tr_lib=HAVE_LIB`echo tk$TK_HI_VERS | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >>confdefs.h <<_ACEOF #define $ac_tr_lib 1 _ACEOF V_LIBS="$V_LIB_TK $V_LIBS" V_DEFINES="-D$ac_tr_lib $V_DEFINES" NS_PACKAGE_tk_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIB_TK" >&5 $as_echo "$V_LIB_TK" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for tk.tcl" >&5 $as_echo_n "checking for tk.tcl... " >&6; } if test "x$d" = "xno"; then : disable header V_LIBRARY_TK=FAIL NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$TK_TCL_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$TK_TCL_PLACES_D" fi V_LIBRARY_TK="" for dir in $places; do if test -r $dir/tk.tcl; then V_LIBRARY_TK="$dir" break fi done if test "FAIL$V_LIBRARY_TK" = "FAIL" ; then NS_PACKAGE_tk_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else NS_PACKAGE_tk_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIBRARY_TK" >&5 $as_echo "$V_LIBRARY_TK" >&6; } fi fi NS_PACKAGE_tk_VALID=false if $NS_PACKAGE_tk_UNDERWAY; then if $NS_PACKAGE_tk_COMPLETE; then : All components of tk found. NS_PACKAGE_tk_VALID=true else { { $as_echo "$as_me:$LINENO: error: Installation of tk seems incomplete or can't be found automatically. Please correct the problem by telling configure where tk is using the argument --with-tk=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-tk=no." >&5 $as_echo "$as_me: error: Installation of tk seems incomplete or can't be found automatically. Please correct the problem by telling configure where tk is using the argument --with-tk=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-tk=no." >&2;} { (exit 1); exit 1; }; } fi fi if test "xno" = xyes; then if $NS_PACKAGE_tk_VALID; then : else { { $as_echo "$as_me:$LINENO: error: tk is required but could not be completely found. Please correct the problem by telling configure where tk is using the argument --with-tk=/path/to/package, or the package is not required, disable it with --with-tk=no." >&5 $as_echo "$as_me: error: tk is required but could not be completely found. Please correct the problem by telling configure where tk is using the argument --with-tk=/path/to/package, or the package is not required, disable it with --with-tk=no." >&2;} { (exit 1); exit 1; }; } fi fi if test -r $V_LIBRARY_TK/optionMenu.tcl ; then V_TKDOSNAMES='$(LIBRARY_TK)/optionMenu.tcl $(LIBRARY_TK)/scrollbar.tcl' V_NEED_DL="" else V_TKDOSNAMES='$(LIBRARY_TK)/optMenu.tcl $(LIBRARY_TK)/scrlbar.tcl' V_NEED_DL=YES fi # Check whether --with-otcl was given. if test "${with_otcl+set}" = set; then withval=$with_otcl; d=$withval else d="" fi OTCL_VERS=1.14 OTCL_ALT_VERS=1.0 OTCL_H_PLACES_D="$d \ $d/include" OTCL_H_PLACES="../otcl \ /usr/src/local/otcl \ ../otcl-$OTCL_VERS \ /import/otcl/include \ /usr/src/local/otcl-$OTCL_VERS \ /usr/src/local/otcl-$OTCL_ALT_VERS \ $prefix/include \ /usr/local/include \ /usr/contrib/include \ /usr/include" OTCL_LIB_PLACES_D="$d \ $d/lib \ " OTCL_LIB_PLACES="../otcl \ ../otcl-$OTCL_VERS \ ../otcl-$OTCL_ALT_VERS \ $prefix/lib \ $x_libraries \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/otcl \ /usr/src/local/otcl-$OTCL_VERS \ /usr/src/local/otcl-$OTCL_ALT_VERS \ " NS_PACKAGE_otcl_UNDERWAY=false NS_PACKAGE_otcl_COMPLETE=true { $as_echo "$as_me:$LINENO: checking for otcl.h" >&5 $as_echo_n "checking for otcl.h... " >&6; } if test "x$d" = "xno"; then : disable header V_INCLUDE_OTCL=FAIL NS_PACKAGE_otcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$OTCL_H_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$OTCL_H_PLACES_D" fi V_INCLUDE_OTCL="" for dir in $places; do if test -r $dir/otcl.h; then V_INCLUDE_OTCL="-I$dir" break fi done if test "FAIL$V_INCLUDE_OTCL" = "FAIL" ; then NS_PACKAGE_otcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else ac_tr_hdr=HAVE_`echo otcl.h | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >>confdefs.h <<_ACEOF #define $ac_tr_hdr 1 _ACEOF V_INCLUDES="$V_INCLUDE_OTCL $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_otcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_INCLUDE_OTCL" >&5 $as_echo "$V_INCLUDE_OTCL" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for libotcl$OTCL_VERS" >&5 $as_echo_n "checking for libotcl$OTCL_VERS... " >&6; } if test "x$d" = "xno"; then : disable library V_LIB_OTCL=FAIL NS_PACKAGE_otcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$OTCL_LIB_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$OTCL_LIB_PLACES_D" fi V_LIB_OTCL="" full_lib_name="otcl$OTCL_VERS" simple_lib_name=`echo $full_lib_name | sed -e 's/\.//'` other_simple_lib_name=`echo $full_lib_name | sed -e 's/\./_/'` simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'` double_break=false for dir in $places; do for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name do if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then V_LIB_OTCL="-L$dir -l$file" double_break=true break fi done if $double_break; then break fi done if test "FAIL$V_LIB_OTCL" = "FAIL" ; then NS_PACKAGE_otcl_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else if test "$solaris"; then V_LIB_OTCL="-R$dir $V_LIB_OTCL" fi ac_tr_lib=HAVE_LIB`echo otcl$OTCL_VERS | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >>confdefs.h <<_ACEOF #define $ac_tr_lib 1 _ACEOF V_LIBS="$V_LIB_OTCL $V_LIBS" V_DEFINES="-D$ac_tr_lib $V_DEFINES" NS_PACKAGE_otcl_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIB_OTCL" >&5 $as_echo "$V_LIB_OTCL" >&6; } fi fi NS_PACKAGE_otcl_VALID=false if $NS_PACKAGE_otcl_UNDERWAY; then if $NS_PACKAGE_otcl_COMPLETE; then : All components of otcl found. NS_PACKAGE_otcl_VALID=true else { { $as_echo "$as_me:$LINENO: error: Installation of otcl seems incomplete or can't be found automatically. Please correct the problem by telling configure where otcl is using the argument --with-otcl=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-otcl=no." >&5 $as_echo "$as_me: error: Installation of otcl seems incomplete or can't be found automatically. Please correct the problem by telling configure where otcl is using the argument --with-otcl=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-otcl=no." >&2;} { (exit 1); exit 1; }; } fi fi if test "xyes" = xyes; then if $NS_PACKAGE_otcl_VALID; then : else { { $as_echo "$as_me:$LINENO: error: otcl is required but could not be completely found. Please correct the problem by telling configure where otcl is using the argument --with-otcl=/path/to/package, or the package is not required, disable it with --with-otcl=no." >&5 $as_echo "$as_me: error: otcl is required but could not be completely found. Please correct the problem by telling configure where otcl is using the argument --with-otcl=/path/to/package, or the package is not required, disable it with --with-otcl=no." >&2;} { (exit 1); exit 1; }; } fi fi xlibdirs="\ /usr/openwin/lib \ /usr/X11R6/lib64 \ /usr/X11R6/lib \ /usr/lib/X11R6 \ /usr/X11R5/lib \ /usr/lib/X11R5 \ /usr/X11R4/lib \ /usr/lib/X11R4 \ /usr/local/lib \ /usr/X386/lib \ /usr/X11/lib \ /Developer/SDKs/MacOSX10.5.sdk/usr/X11R6/lib \ /Developer/SDKs/MacOSX10.6.sdk/usr/X11R6/lib \ /usr/unsupported/lib \ /import/X11R4/usr/lib" xincdirs="\ /usr/openwin/include \ /usr/X11R6/include \ /usr/include/X11R6 \ /usr/X11R5/include \ /usr/include/X11R5 \ /usr/X11R4/include \ /usr/include/X11R4 \ /usr/local/include \ /usr/X386/include \ /usr/X11/include \ /usr/lpp/X11/include \ /Developer/SDKs/MacOSX10.5.sdk/usr/X11R6/include \ /Developer/SDKs/MacOSX10.6.sdk/usr/X11R6/include \ /usr/unsupported/include \ /import/X11R4/include" echo "checking for X11 header files" if test "$x_includes" = NONE ; then 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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then x_includes="" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 x_includes=NONE fi rm -f conftest.err conftest.$ac_ext if test "$x_includes" = NONE ; then for i in $xincdirs ; do if test -r $i/X11/Intrinsic.h; then x_includes=$i break fi done if test "$x_includes" = NONE ; then echo "can't find X includes" exit 1 fi fi fi if test -n "$x_includes" ; then V_INCLUDE_X11=-I$x_includes fi echo "checking for X11 library archive" if test "$x_libraries" = NONE ; then { $as_echo "$as_me:$LINENO: checking for XOpenDisplay in -lX11" >&5 $as_echo_n "checking for XOpenDisplay in -lX11... " >&6; } if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lX11 $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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_X11_XOpenDisplay=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_X11_XOpenDisplay=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_X11_XOpenDisplay" >&5 $as_echo "$ac_cv_lib_X11_XOpenDisplay" >&6; } if test "x$ac_cv_lib_X11_XOpenDisplay" = x""yes; then x_libraries="" else x_libraries=NONE fi if test "$x_libraries" = NONE ; then for i in $xlibdirs ; do if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.dylib; then x_libraries=$i break fi done if test "$x_libraries" = NONE ; then echo "can't find X library" exit 1 fi fi fi V_LIB_X11=-lX11 if test -n "$V_SHM" ; then if test -z "$x_libraries" ; then { $as_echo "$as_me:$LINENO: checking for XShmAttach in -lXext" >&5 $as_echo_n "checking for XShmAttach in -lXext... " >&6; } if test "${ac_cv_lib_Xext_XShmAttach+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext -lX11 $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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XShmAttach (); int main () { return XShmAttach (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_Xext_XShmAttach=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xext_XShmAttach=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShmAttach" >&5 $as_echo "$ac_cv_lib_Xext_XShmAttach" >&6; } if test "x$ac_cv_lib_Xext_XShmAttach" = x""yes; then V_Xext="-lXext" else V_Xext=NONE fi else echo "checking for libXext.a" if test -f $x_libraries/libXext.a -o -f $x_libraries/libXext.so -o -f $x_libraries/libXext.dylib; then V_Xext="-lXext" else echo "warning: compiling without -lXext" fi fi if test "$V_Xext" = NONE ; then echo "warning: compiling without -lXext" else V_LIB_X11="$V_Xext $V_LIB_X11" fi fi if test -n "$x_libraries" ; then V_LIB_X11="-L$x_libraries $V_LIB_X11" if test $solaris ; then V_LIB_X11="-R$x_libraries $V_LIB_X11" fi fi case "$target" in *-dec-*) V_DEFINE="$V_DEFINE -D_XOPEN_SOURCE_EXTENDED" cat >>confdefs.h <<\_ACEOF #define _XOPEN_SOURCE_EXTENDED 1 _ACEOF ;; sparc-sun-solaris*) if test $CC = gcc ; then V_DEFINE="$V_DEFINE -mv8 -msupersparc" fi V_DEFINE="$V_DEFINE -D__svr4__" V_LIB="$V_LIB -ldl" ;; sparc-sun-sunos*) V_DEFINE="$V_DEFINE -DNEED_SUNOS_PROTOS" ;; *-sgi-irix5*) V_DEFINE="$V_DEFINE -DIRIX5 -D_BSD_SIGNALS" if test "$target_os" = irix5.3 ; then V_DEFINE="$V_DEFINE -DIRIX5_3" fi V_TARCMD="tar cfL" V_SHELL="SHELL = /bin/sh" if test $CC != gcc ; then V_DEFINE="$V_DEFINE -signed -g3" V_CXXOPT="$V_CXXOPT +p -float" CC="cc -xansi -D__STDC__ -Dinline=" CXX="CC +p -float -DSGI_COMPAT" fi V_RANLIB="ar ts" ;; *-sgi-irix6*) V_DEFINE="$V_DEFINE -DIRIX6 -D_BSD_SIGNALS" V_TARCMD="tar cfL" V_SHELL="SHELL = /bin/sh" if test $CC != gcc ; then V_DEFINE="$V_DEFINE -signed -g3" V_CXXOPT="$V_CXXOPT +p -float" CC="cc -xansi -D__STDC__ -Dinline=" CXX="CC +p -float -DSGI_COMPAT" fi V_RANLIB="ar ts" ;; *-*-bsdi1*) V_SHM="" V_TARCMD="tar cfL" ;; *-*-bsdi2.0*) V_SHM="" V_TARCMD="tar cfL" ;; *-*-bsdi2.1*) # bsdi2.1 added sys-v shared memory support but their implementation # is broken so we have to turn it off. If they ever fix libipc, # the following line should be deleted. V_SHM="" V_TARCMD="tar cfL" V_CCOPT="-O2 -m486" V_LIB="$V_LIB -lipc -ldl" ;; *-*-bsdi3*) V_SHM="" V_TARCMD="tar cfL" V_LIB="$V_LIB -lipc -ldl" V_OBJ="$V_OBJ misc/serial.o" ;; *-*-freebsd*) V_OBJ="$V_OBJ misc/serial.o" ;; *-*-netbsd*) V_TARCMD="tar -h -c -f" V_LIB="$V_LIB -L/usr/local/lib" ;; *-*-hpux*) cat >>confdefs.h <<\_ACEOF #define random lrand48 _ACEOF cat >>confdefs.h <<\_ACEOF #define srandom srand _ACEOF V_CCOPT="-O" ;; *-*-aix3*) V_DEFINE="$V_DEFINE -DSIGARGS=int" if test "$V_LIB_AIXSHM" != "" ; then V_LIB="$V_LIB $V_LIB_AIXSHM" else V_SHM="" fi CXX="xlC -+" ;; *-*-aix4*) V_DEFINE="$V_DEFINE -DSIGARGS=int -D_AIX41" if test "$V_LIB_AIXSHM" != "" ; then V_LIB="$V_LIB $V_LIB_AIXSHM" else V_SHM="" fi CXX="g++" ;; *-*-linux*) V_BROKEN_OBJ= ;; esac # Check whether --with-zlib was given. if test "${with_zlib+set}" = set; then withval=$with_zlib; d=$withval else d="" fi ZLIB_VERS=1.1.3 ZLIB_H_PLACES_D="$d \ $d/include" ZLIB_H_PLACES="../zlib \ /usr/src/local/zlib \ ../zlib-$ZLIB_VERS \ /import/zlib/include \ /usr/src/local/zlib-$ZLIB_VERS \ /usr/src/local/zlib-$ZLIB_ALT_VERS \ $prefix/include \ /usr/local/include \ /usr/contrib/include \ /usr/include" ZLIB_LIB_PLACES_D="$d \ $d/lib \ " ZLIB_LIB_PLACES="../zlib \ ../zlib-$ZLIB_VERS \ ../zlib-$ZLIB_ALT_VERS \ $prefix/lib \ $x_libraries \ /usr/contrib/lib \ /usr/local/lib \ /usr/lib \ /usr/src/local/zlib \ /usr/src/local/zlib-$ZLIB_VERS \ /usr/src/local/zlib-$ZLIB_ALT_VERS \ " NS_PACKAGE_zlib_UNDERWAY=false NS_PACKAGE_zlib_COMPLETE=true { $as_echo "$as_me:$LINENO: checking for zlib.h" >&5 $as_echo_n "checking for zlib.h... " >&6; } if test "x$d" = "xno"; then : disable header V_INCLUDE_ZLIB=FAIL NS_PACKAGE_zlib_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$ZLIB_H_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$ZLIB_H_PLACES_D" fi V_INCLUDE_ZLIB="" for dir in $places; do if test -r $dir/zlib.h; then V_INCLUDE_ZLIB="-I$dir" break fi done if test "FAIL$V_INCLUDE_ZLIB" = "FAIL" ; then NS_PACKAGE_zlib_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else ac_tr_hdr=HAVE_`echo zlib.h | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >>confdefs.h <<_ACEOF #define $ac_tr_hdr 1 _ACEOF V_INCLUDES="$V_INCLUDE_ZLIB $V_INCLUDES" V_DEFINES="-D$ac_tr_hdr $V_DEFINES" NS_PACKAGE_zlib_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_INCLUDE_ZLIB" >&5 $as_echo "$V_INCLUDE_ZLIB" >&6; } fi fi { $as_echo "$as_me:$LINENO: checking for libz$ZLIB_VERS" >&5 $as_echo_n "checking for libz$ZLIB_VERS... " >&6; } if test "x$d" = "xno"; then : disable library V_LIB_ZLIB=FAIL NS_PACKAGE_zlib_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else places="$ZLIB_LIB_PLACES" if test "x$d" != "x" -a "x$d" != xyes; then if test ! -d $d; then { { $as_echo "$as_me:$LINENO: error: $d is not a directory" >&5 $as_echo "$as_me: error: $d is not a directory" >&2;} { (exit 1); exit 1; }; } fi places="$ZLIB_LIB_PLACES_D" fi V_LIB_ZLIB="" full_lib_name="z$ZLIB_VERS" simple_lib_name=`echo $full_lib_name | sed -e 's/\.//'` other_simple_lib_name=`echo $full_lib_name | sed -e 's/\./_/'` simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'` double_break=false for dir in $places; do for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name do if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then V_LIB_ZLIB="-L$dir -l$file" double_break=true break fi done if $double_break; then break fi done if test "FAIL$V_LIB_ZLIB" = "FAIL" ; then NS_PACKAGE_zlib_COMPLETE=false { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else if test "$solaris"; then V_LIB_ZLIB="-R$dir $V_LIB_ZLIB" fi ac_tr_lib=HAVE_LIB`echo z$ZLIB_VERS | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >>confdefs.h <<_ACEOF #define $ac_tr_lib 1 _ACEOF V_LIBS="$V_LIB_ZLIB $V_LIBS" V_DEFINES="-D$ac_tr_lib $V_DEFINES" NS_PACKAGE_zlib_UNDERWAY=true { $as_echo "$as_me:$LINENO: result: $V_LIB_ZLIB" >&5 $as_echo "$V_LIB_ZLIB" >&6; } fi fi if $NS_PACKAGE_zlib_COMPLETE; then NS_PACKAGE_zlib_VALID=false if $NS_PACKAGE_zlib_UNDERWAY; then if $NS_PACKAGE_zlib_COMPLETE; then : All components of zlib found. NS_PACKAGE_zlib_VALID=true else { { $as_echo "$as_me:$LINENO: error: Installation of zlib seems incomplete or can't be found automatically. Please correct the problem by telling configure where zlib is using the argument --with-zlib=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-zlib=no." >&5 $as_echo "$as_me: error: Installation of zlib seems incomplete or can't be found automatically. Please correct the problem by telling configure where zlib is using the argument --with-zlib=/path/to/package (perhaps after installing it), or the package is not required, disable it with --with-zlib=no." >&2;} { (exit 1); exit 1; }; } fi fi if test "xno" = xyes; then if $NS_PACKAGE_zlib_VALID; then : else { { $as_echo "$as_me:$LINENO: error: zlib is required but could not be completely found. Please correct the problem by telling configure where zlib is using the argument --with-zlib=/path/to/package, or the package is not required, disable it with --with-zlib=no." >&5 $as_echo "$as_me: error: zlib is required but could not be completely found. Please correct the problem by telling configure where zlib is using the argument --with-zlib=/path/to/package, or the package is not required, disable it with --with-zlib=no." >&2;} { (exit 1); exit 1; }; } fi fi fi if test "$enable_static" = "yes" ; then echo Explicitly enabling static compilation V_STATIC="-static" elif test "$enable_static" = "no" ; then echo Explicitly disabling static compilation V_STATIC="" else echo No explicit static compilation flag\; setting V_STATIC to \"$V_STATIC\" fi # # tcl7.x needs a dynamic loading library (unless built with the # -disable-load flag). Try to find the appropriate one. if test ! -z "$V_NEED_DL" ; then V_LIB_DL="" case "$target" in *-*-solaris*) V_LIB_DL="dl" ;; sparc-sun-sunos*) V_LIB_DL="dl" ;; *-*-bsdi2.1) V_LIB_DL="dl" ;; *-*-bsdi3.0) V_LIB_DL="dl" ;; *-*-hpux*) V_LIB_DL="dld" ;; *-*-linux*) { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dl_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then V_LIB_DL="dl" else V_LIB_DL="dld" fi ;; esac if test ! -z "$V_LIB_DL" ; then case "$target" in *-*-linux*) ;; *) as_ac_Lib=`$as_echo "ac_cv_lib_$V_LIB_DL''_main" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for main in -l$V_LIB_DL" >&5 $as_echo_n "checking for main in -l$V_LIB_DL... " >&6; } if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$V_LIB_DL $V_STATIC $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 () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_Lib=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Lib=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi ac_res=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_LIB$V_LIB_DL" | $as_tr_cpp` 1 _ACEOF LIBS="-l$V_LIB_DL $LIBS" else V_LIB_DL="" fi ;; esac fi if test ! -z "$V_LIB_DL" ; then case "$target" in *-*-bsdi*) ;; *-*-linux*) if test -z "$V_STATIC" ; then V_LIB="$V_LIB -l$V_LIB_DL" fi ;; *) V_LIB="$V_LIB -l$V_LIB_DL" ;; esac else echo "no dynamic load lib" fi fi # Recheck the system to see if we need to add any system-dependent # libraries { $as_echo "$as_me:$LINENO: checking system version (for system-dependent libraries)" >&5 $as_echo_n "checking system version (for system-dependent libraries)... " >&6; } if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` else system=`uname -s`-`uname -r` if test "$?" -ne 0 ; then { $as_echo "$as_me:$LINENO: result: unknown (can't find uname command)" >&5 $as_echo "unknown (can't find uname command)" >&6; } system=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 system=MP-RAS-`awk '{print $3}' /etc/.relid` fi if test "`uname -s`" = "AIX" ; then system=AIX-`uname -v`.`uname -r` fi { $as_echo "$as_me:$LINENO: result: $system" >&5 $as_echo "$system" >&6; } fi fi case $system in Darwin-7.*|Darwin-8.*) V_LIBS="$V_LIBS -framework CoreFoundation" esac if test "$host_cpu" = alpha ; then V_DEFINE="$V_DEFINE -DINT_64=u_long" fi # various include hacks dirs="/usr/src/local/include-fixes \ /import/mcast/include" for dir in $dirs; do if test -d $dir ; then V_INCLUDE="$V_INCLUDE -I$dir" fi done # always use -g with gcc during development (even with -O) # force noline so that we can debug all functions if test "$CC" = gcc && test -f .devel ; then V_CCOPT="$V_CCOPT -g -Wall" V_DEFINE="$V_DEFINE -fsigned-char -fno-inline" fi V_DEFINE="$V_DEFINE $V_SHM" # Added because there is no conf.h generated to define HAVE_UNISTD_H if test "${ac_cv_header_unistd_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for unistd.h" >&5 $as_echo_n "checking for unistd.h... " >&6; } if test "${ac_cv_header_unistd_h+set}" = set; then $as_echo_n "(cached) " >&6 fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5 $as_echo "$ac_cv_header_unistd_h" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking unistd.h usability" >&5 $as_echo_n "checking unistd.h usability... " >&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 { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking unistd.h presence" >&5 $as_echo_n "checking unistd.h presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&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 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_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 { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: unistd.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: unistd.h: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: unistd.h: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: unistd.h: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: unistd.h: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: unistd.h: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: unistd.h: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: unistd.h: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for unistd.h" >&5 $as_echo_n "checking for unistd.h... " >&6; } if test "${ac_cv_header_unistd_h+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_header_unistd_h=$ac_header_preproc fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5 $as_echo "$ac_cv_header_unistd_h" >&6; } fi if test "x$ac_cv_header_unistd_h" = x""yes; then V_DEFINE="$V_DEFINE -DHAVE_UNISTD_H=1" fi V_TAR_TARGET=$target_os absolutize_list() { tmp="" for p do case $p in -L* | -I*) tmp="$tmp `absolutize $p`";; *) tmp="$tmp $p";; esac done echo $tmp } # Replace relative path with absolute path V_LIB_TCLCL=`absolutize_list $V_LIB_TCLCL` V_LIB_OTCL=`absolutize_list $V_LIB_OTCL` V_LIB_TCL=`absolutize_list $V_LIB_TCL` V_LIB_TK=`absolutize_list $V_LIB_TK` V_LIBS=`absolutize_list $V_LIBS` V_INCLUDES=`absolutize_list $V_INCLUDES` # Since SMASH and MASH need different sets of libraries, we # use each lib definition seperately instead of using V_LIBS. # 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. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir 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. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$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' ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H 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_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # 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 after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, 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 # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (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 sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_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" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.h.in" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_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 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # 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 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # 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 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi if test ! -d gen ; then echo "creating ./gen" mkdir gen fi if test ! -d bin ; then echo "creating ./bin" mkdir bin fi if test -f .devel -o "$enable_devel" = "yes" ; then make depend fi tclcl-1.20/configure.in0000664000076400007660000000206011205575722013733 0ustar tomhnsnamdnl 'autoconf' input file for the LBL C++ object Tcl library dnl $Header: /cvsroot/otcl-tclcl/tclcl/configure.in,v 1.15 2009/05/22 19:24:02 tom_henderson Exp $ (LBL) AC_INIT(Tcl.cc) AC_CONFIG_HEADERS([config.h:config.h.in]) V_PROG="libtclcl.a" V_ALL="$V_PROG" dnl standard setup for vic/vat/etc. autoconf scripts. dnl $Header: /cvsroot/otcl-tclcl/tclcl/configure.in,v 1.15 2009/05/22 19:24:02 tom_henderson Exp $ (LBL) builtin(include, ./conf/configure.in.fns) builtin(include, ./conf/configure.in.head) # These must follow configure.in.head because they mess # with $*. AC_PROG_RANLIB # (install is in tail) AC_CHECK_FUNCS(snprintf) dnl next line for AC_HEADER_STDC builtin(include, ./conf/configure.in.int64_t) builtin(include, ./conf/configure.in.tcl) builtin(include, ./conf/configure.in.tk) builtin(include, ./conf/configure.in.otcl) builtin(include, ./conf/configure.in.x11) builtin(include, ./conf/configure.in.misc) builtin(include, ./conf/configure.in.z) NS_FNS_TAIL define(AcOutputFiles, Makefile) builtin(include, ./conf/configure.in.tail) tclcl-1.20/idlecallback.cc0000664000076400007660000000474006307406273014333 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/idlecallback.cc,v 1.2 1997/03/06 00:15:55 mccanne Exp $ (LBL)"; #include "idlecallback.h" IdleCallback::IdleCallback() : pending_(0) { } IdleCallback::~IdleCallback() { if (pending_ != 0) idle_cancel(); } void IdleCallback::idle_sched() { if (!pending_) { Tcl_DoWhenIdle(dispatch, (ClientData)this); pending_ = 1; } } void IdleCallback::dispatch(ClientData cd) { IdleCallback* t = (IdleCallback*)cd; t->pending_ = 0; t->idle_callback(); } void IdleCallback::idle_cancel() { if (pending_) { Tcl_CancelIdleCall(dispatch, (ClientData)this); pending_ = 0; } } tclcl-1.20/idlecallback.h0000664000076400007660000000440506307406274014174 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#) $Header: /cvsroot/otcl-tclcl/tclcl/idlecallback.h,v 1.2 1997/03/06 00:15:56 mccanne Exp $ (LBL) */ #ifndef vic_idlecallback_h #define vic_idlecallback_h extern "C" { #include } class IdleCallback { protected: IdleCallback(); public: virtual ~IdleCallback(); void idle_sched(); void idle_cancel(); protected: virtual void idle_callback() = 0; private: static void dispatch(ClientData); int pending_; }; #endif tclcl-1.20/install-sh0000775000076400007660000001124406256277517013445 0ustar tomhnsnam#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" tranformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 tclcl-1.20/iohandler.cc0000664000076400007660000001242106450357524013704 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/iohandler.cc,v 1.8 1997/12/25 04:21:40 tecklee Exp $ (LBL)"; #include "tclcl.h" #include "iohandler.h" #ifdef WIN32 #include "tk.h" #include #include #endif #ifdef WIN32 #if TK_MAJOR_VERSION >= 8 extern "C" HINSTANCE Tk_GetHINSTANCE(); #else extern "C" HINSTANCE TkWinGetAppInstance(); #define Tk_GetHINSTANCE() TkWinGetAppInstance() #endif LRESULT CALLBACK IOHandler::WSocketHandler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { IOHandler* p; switch (message) { case WM_CREATE:{ CREATESTRUCT *info = (CREATESTRUCT *) lParam; SetWindowLong(hwnd, GWL_USERDATA, (DWORD)info->lpCreateParams); return 0; } case WM_DESTROY: return 0; case WM_WSOCK_READY: p = (IOHandler *) GetWindowLong(hwnd, GWL_USERDATA); if (p == NULL) { fprintf(stderr, "IOHandler: no GWL_USERDATA\n"); } else { p->dispatch(TK_READABLE); return 0; } break; } return DefWindowProc(hwnd, message, wParam, lParam); } #endif #ifdef WIN32 ATOM IOHandler::classAtom_ = 0; #endif IOHandler::IOHandler() : fd_(-1) #ifdef WIN32 , hwnd_(0) #endif { #ifdef WIN32 if (0==classAtom_) { WNDCLASS cl; /* * Register the Message window class. */ cl.style = CS_HREDRAW | CS_VREDRAW; cl.lpfnWndProc = IOHandler::WSocketHandler; cl.cbClsExtra = 0; cl.cbWndExtra = 0; cl.hInstance = Tk_GetHINSTANCE(); cl.hIcon = NULL; cl.hCursor = NULL; cl.hbrBackground = NULL; cl.lpszMenuName = NULL; cl.lpszClassName = "TclCLWSocket"; classAtom_ = RegisterClass(&cl); if (0==classAtom_) { displayErr("register class WSocket"); } } #endif } IOHandler::~IOHandler() { if (fd_ >= 0) unlink(); } void IOHandler::link(int fd, int mask) { fd_ = fd; #ifdef WIN32 int status; int flags = 0; if (TK_READABLE & mask) flags |= FD_READ; if (TK_WRITABLE & mask) flags |= FD_WRITE; hwnd_ = CreateWindow("TclCLWSocket", "", WS_POPUP | WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, NULL, NULL, Tk_GetHINSTANCE(), this); if (hwnd_ == NULL) { displayErr("IOHandler::link() CreateWindow"); exit(1); } // ShowWindow(hwnd_, SW_HIDE); if ((status = WSAAsyncSelect(fd, hwnd_, WM_WSOCK_READY, flags)) > 0) { displayErr("IOHandler::link() WSAAsyncSelect"); exit(1); } #elif TCL_MAJOR_VERSION >= 8 Tcl_CreateFileHandler(fd, mask, callback, (ClientData)this); #else Tcl_CreateFileHandler(Tcl_GetFile((ClientData)fd, TCL_UNIX_FD), mask, callback, (ClientData)this); #endif } void IOHandler::unlink() { #ifdef WIN32 if (fd_ >= 0 && hwnd_ != 0) { /* cancel callback */ (void) WSAAsyncSelect(fd_, hwnd_, 0, 0); if (hwnd_) { (void) DestroyWindow(hwnd_); hwnd_ = 0; fd_ = -1; } } #else if (fd_ >= 0) { #if TCL_MAJOR_VERSION < 8 Tcl_DeleteFileHandler(Tcl_GetFile((ClientData)fd_, TCL_UNIX_FD)); #else Tcl_DeleteFileHandler(fd_); #endif fd_ = -1; } #endif } #ifndef WIN32 void IOHandler::callback(ClientData cd, int mask) { IOHandler* p = (IOHandler*)cd; p->dispatch(mask); } #endif tclcl-1.20/iohandler.h0000664000076400007660000000471506401150427013542 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#) $Header: /cvsroot/otcl-tclcl/tclcl/iohandler.h,v 1.2 1997/08/28 01:15:03 tecklee Exp $ (LBL) */ #ifndef vic_io_handler_h #define vic_io_handler_h #include #ifdef WIN32 #include #define WM_WSOCK_READY WM_USER+123 #endif class IOHandler { protected: IOHandler(); public: virtual ~IOHandler(); void link(int fd, int mask); void unlink(); protected: virtual void dispatch(int mask) = 0; private: #ifdef WIN32 static LRESULT CALLBACK WSocketHandler(HWND, UINT, WPARAM, LPARAM); static ATOM classAtom_; HWND hwnd_; #else static void callback(ClientData, int mask); #endif int fd_; }; #endif tclcl-1.20/Makefile.in0000664000076400007660000001557710574637540013515 0ustar tomhnsnam# # Copyright (c) 1993-1994 The Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and the Network Research Group at # Lawrence Berkeley Laboratory. # 4. Neither the name of the University nor of the Laboratory may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#) $Header: /cvsroot/otcl-tclcl/tclcl/Makefile.in,v 1.50 2007/03/10 23:29:36 tom_henderson Exp $ (LBL) # BLANK = # make a blank space. DO NOT add anything to this line # The following will be redefined under Windows (see WIN32 lable below) CC = @CC@ CPP = @CXX@ LINK = $(CPP) MKDEP = ./conf/mkdep TCLSH = @V_TCLSH@ TCL2C = ./tcl2c++ AR = ar rc $(BLANK) RANLIB = @RANLIB@ INSTALL = @INSTALL@ LN = ln TEST = test RM = rm -f PERL = perl CCOPT = @V_CCOPT@ STATIC = @V_STATIC@ LDFLAGS = $(STATIC) LDOUT = -o $(BLANK) DEFINE = -DNO_TK @V_DEFINE@ @V_DEFINES@ @DEFS@ INCLUDES = \ -I. @V_INCLUDES@ LIB = \ @V_LIBS@ CFLAGS = $(CCOPT) $(DEFINE) # Explicitly define compilation rules since SunOS 4's make doesn't like gcc. # Also, gcc does not remove the .o before forking 'as', which can be a # problem if you don't own the file but can write to the directory. .SUFFIXES: .cc # $(.SUFFIXES) .cc.o: @rm -f $@ $(CPP) -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $*.c GEN_DIR = gen/ LIB_TCLCL = @V_ALL@ LIBRARY_TK = @V_LIBRARY_TK@ LIBRARY_TCL = @V_LIBRARY_TCL@ TCL_76_LIBRARY_FILES = \ $(LIBRARY_TCL)/init.tcl TCL_BASE_LIBRARY_FILES= \ $(LIBRARY_TCL)/init.tcl \ $(LIBRARY_TCL)/history.tcl \ $(LIBRARY_TCL)/word.tcl TCL_80_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.0/http.tcl TCL_81_LIBRARY_FILES = $(TCL_80_LIBRARY_FILES) TCL_82_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.1/http.tcl TCL_83_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.[34]/http.tcl TCL_835_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.4/http.tcl TCL_84_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.4/http.tcl TCL_LIBRARY_FILES = \ @V_TCL_LIBRARY_FILES@ #TKDOSNAMES = \ # $(LIBRARY_TK)/optionMenu.tcl \ # $(LIBRARY_TK)/scrollbar.tcl TKDOSNAMES = @V_TKDOSNAMES@ OBJ_COMPAT_C = # WIN32: uncomment the following line to be use with vc++ nmake # !include TK_LIBRARY_FILES = \ $(TCL_LIBRARY_FILES) \ $(LIBRARY_TK)/tk.tcl \ $(LIBRARY_TK)/clrpick.tcl \ $(LIBRARY_TK)/comdlg.tcl \ $(LIBRARY_TK)/button.tcl \ $(LIBRARY_TK)/dialog.tcl \ $(LIBRARY_TK)/entry.tcl \ $(LIBRARY_TK)/focus.tcl \ $(LIBRARY_TK)/listbox.tcl \ $(LIBRARY_TK)/menu.tcl \ $(LIBRARY_TK)/palette.tcl \ $(LIBRARY_TK)/scale.tcl \ $(LIBRARY_TK)/tearoff.tcl \ $(LIBRARY_TK)/text.tcl \ $(LIBRARY_TK)/tkfbox.tcl \ $(LIBRARY_TK)/msgbox.tcl \ $(TKDOSNAMES) CONSOLE_FILES = $(LIBRARY_TK)/console.tcl OBJ_CC = Tcl.o Tcl2.o idlecallback.o iohandler.o timer.o rate-variable.o \ tracedvar.o \ embedded-tcl.o embedded-tk.o embedded-tclobj.o $(OBJ_COMPAT_CC) SRC = $(OBJ_CC:.o=.cc) $(OBJ_COMPAT_C:.o=.c) all: $(TCL2C) $(LIB_TCLCL) $(TCL2C): tcl2c++.o $(RM) $@ $(LINK) $(STATIC) $(LDFLAGS) $(LDOUT)$@ tcl2c++.o # We used to link to libTcl.a for backwards compatibilty, but no more. $(LIB_TCLCL): $(OBJ_CC) $(OBJ_COMPAT_C) $(RM) $@ $(AR)$@ $(OBJ_CC) $(OBJ_COMPAT_C) $(RANLIB) $@ # # pass-1 embedded tcl files # embedded-tcl.cc: $(TCL_LIBRARY_FILES) $(TCL2C) $(RM) $@ $(TCL2C) et_tcl $(TCL_LIBRARY_FILES) > $@ embedded-tk.cc: $(TK_LIBRARY_FILES) $(TCL2C) $(RM) $@ $(TCL2C) et_tk $(TK_LIBRARY_FILES) > $@ embedded-tclobj.cc: tcl-object.tcl tcl-import.tcl tcl-http.tcl $(TCL2C) $(RM) $@ $(TCL2C) et_tclobject tcl-object.tcl tcl-import.tcl tcl-http.tcl > $@ # # pass-1 console tcl files # embedded-console.cc: $(CONSOLE_FILES) $(TCL2C) $(RM) embedded-console.o $(TCL2C) et_console $(CONSOLE_FILES) > embedded-console.cc install: force $(INSTALL) -m 644 *.h @prefix@/include $(INSTALL) tcl2c++ @prefix@/bin $(INSTALL) $(LIB_TCLCL) @prefix@/lib $(RANLIB) @prefix@/lib/$(LIB_TCLCL) # libTcl is no longer installed as of 13-Nov-99 # -test -f @prefix@/lib/libTcl.a && rm -f @prefix@/lib/libTcl.a || true # ln -s @prefix@/lib/libtclcl.a @prefix@/lib/libTcl.a clean: $(RM) $(LIB_TCLCL) $(TCL2C) *.o config.log config.cache \ embedded-tk.cc embedded-tclobj.cc embedded-tcl.cc realclean: $(MAKE) clean rm -f Makefile config.log config.cache config.status distclean: realclean tags: force ctags -tdwC $(SRC) *.h $(TKSRC)/*.c $(TKSRC)/*.h \ $(TCLSRC)/*.c $(TCLSRC)/*.h force: depend: $(MKDEP) $(INCLUDES) $(DEFINE) $(SRC) tar: force tar=tclcl-`cat VERSION`-@V_TAR_TARGET@.tar.gz ; \ rm -f $$tar ; \ @V_TARCMD@ - README CHANGES.html @V_TAR_EXTRA@ $(ALL) | \ gzip -c > $$tar srctar: force @cwd=`pwd` ; dir=`basename $$cwd` ; \ name=tclcl-`cat VERSION | tr A-Z a-z` ; \ tar=tclcl-src-`cat VERSION`.tar.gz ; \ list="" ; \ for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \ echo \ "(rm -f $$tar; cd .. ; ln -s $$dir $$name)" ; \ (rm -f $$tar; cd .. ; ln -s $$dir $$name) ; \ echo \ "(cd .. ; tar cfhz $$tar [lots of files])" ; \ (cd .. ; tar cfhz - $$list) > $$tar ; \ echo \ "rm ../$$name; chmod 444 $$tar" ; \ rm ../$$name; chmod 444 $$tar # Create makefile.vc for Win32 development by replacing: # "# !include ..." -> "!include ..." makefile.vc: Makefile.in $(PERL) -pe 's/^# (\!include)/\!include/o' < Makefile.in > makefile.vc tclcl-1.20/makefile.vc0000664000076400007660000001560510506657353013546 0ustar tomhnsnam# # Copyright (c) 1993-1994 The Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and the Network Research Group at # Lawrence Berkeley Laboratory. # 4. Neither the name of the University nor of the Laboratory may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#) $Header: /cvsroot/otcl-tclcl/tclcl/makefile.vc,v 1.20 2006/09/28 05:34:35 tom_henderson Exp $ (LBL) # BLANK = # make a blank space. DO NOT add anything to this line # The following will be redefined under Windows (see WIN32 lable below) CC = @CC@ CPP = @CXX@ LINK = $(CPP) MKDEP = ./conf/mkdep TCLSH = @V_TCLSH@ TCL2C = ./tcl2c++ AR = ar rc $(BLANK) RANLIB = @RANLIB@ INSTALL = @INSTALL@ LN = ln TEST = test RM = rm -f PERL = perl CCOPT = @V_CCOPT@ STATIC = @V_STATIC@ LDFLAGS = $(STATIC) LDOUT = -o $(BLANK) DEFINE = -DNO_TK @V_DEFINE@ @V_DEFINES@ @DEFS@ INCLUDES = \ -I. @V_INCLUDES@ LIB = \ @V_LIBS@ CFLAGS = $(CCOPT) $(DEFINE) # Explicitly define compilation rules since SunOS 4's make doesn't like gcc. # Also, gcc does not remove the .o before forking 'as', which can be a # problem if you don't own the file but can write to the directory. .SUFFIXES: .cc # $(.SUFFIXES) .cc.o: @rm -f $@ $(CPP) -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $*.c GEN_DIR = gen/ LIB_TCLCL = @V_ALL@ LIBRARY_TK = @V_LIBRARY_TK@ LIBRARY_TCL = @V_LIBRARY_TCL@ TCL_76_LIBRARY_FILES = \ $(LIBRARY_TCL)/init.tcl TCL_BASE_LIBRARY_FILES= \ $(LIBRARY_TCL)/init.tcl \ $(LIBRARY_TCL)/history.tcl \ $(LIBRARY_TCL)/word.tcl TCL_80_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.0/http.tcl TCL_81_LIBRARY_FILES = $(TCL_80_LIBRARY_FILES) TCL_82_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.1/http.tcl TCL_83_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.[34]/http.tcl TCL_835_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.4/http.tcl TCL_84_LIBRARY_FILES = \ $(TCL_BASE_LIBRARY_FILES) \ $(LIBRARY_TCL)/http2.4/http.tcl TCL_LIBRARY_FILES = \ @V_TCL_LIBRARY_FILES@ #TKDOSNAMES = \ # $(LIBRARY_TK)/optionMenu.tcl \ # $(LIBRARY_TK)/scrollbar.tcl TKDOSNAMES = @V_TKDOSNAMES@ OBJ_COMPAT_C = # WIN32: uncomment the following line to be use with vc++ nmake !include TK_LIBRARY_FILES = \ $(TCL_LIBRARY_FILES) \ $(LIBRARY_TK)/tk.tcl \ $(LIBRARY_TK)/clrpick.tcl \ $(LIBRARY_TK)/comdlg.tcl \ $(LIBRARY_TK)/button.tcl \ $(LIBRARY_TK)/dialog.tcl \ $(LIBRARY_TK)/entry.tcl \ $(LIBRARY_TK)/focus.tcl \ $(LIBRARY_TK)/listbox.tcl \ $(LIBRARY_TK)/menu.tcl \ $(LIBRARY_TK)/palette.tcl \ $(LIBRARY_TK)/scale.tcl \ $(LIBRARY_TK)/tearoff.tcl \ $(LIBRARY_TK)/text.tcl \ $(LIBRARY_TK)/tkfbox.tcl \ $(LIBRARY_TK)/msgbox.tcl \ $(TKDOSNAMES) CONSOLE_FILES = $(LIBRARY_TK)/console.tcl OBJ_CC = Tcl.o Tcl2.o idlecallback.o iohandler.o timer.o rate-variable.o \ tracedvar.o \ embedded-tcl.o embedded-tk.o embedded-tclobj.o $(OBJ_COMPAT_CC) SRC = $(OBJ_CC:.o=.cc) $(OBJ_COMPAT_C:.o=.c) all: $(TCL2C) $(LIB_TCLCL) $(TCL2C): tcl2c++.o $(RM) $@ $(LINK) $(STATIC) $(LDFLAGS) $(LDOUT)$@ tcl2c++.o # We used to link to libTcl.a for backwards compatibilty, but no more. $(LIB_TCLCL): $(OBJ_CC) $(OBJ_COMPAT_C) $(RM) $@ $(AR)$@ $(OBJ_CC) $(OBJ_COMPAT_C) $(RANLIB) $@ # # pass-1 embedded tcl files # embedded-tcl.cc: $(TCL_LIBRARY_FILES) $(TCL2C) $(RM) $@ $(TCL2C) et_tcl $(TCL_LIBRARY_FILES) > $@ embedded-tk.cc: $(TK_LIBRARY_FILES) $(TCL2C) $(RM) $@ $(TCL2C) et_tk $(TK_LIBRARY_FILES) > $@ embedded-tclobj.cc: tcl-object.tcl tcl-import.tcl tcl-http.tcl $(TCL2C) $(RM) $@ $(TCL2C) et_tclobject tcl-object.tcl tcl-import.tcl tcl-http.tcl > $@ # # pass-1 console tcl files # embedded-console.cc: $(CONSOLE_FILES) $(TCL2C) $(RM) embedded-console.o $(TCL2C) et_console $(CONSOLE_FILES) > embedded-console.cc install: force $(INSTALL) -m 644 *.h @prefix@/include $(INSTALL) tcl2c++ @prefix@/bin $(INSTALL) $(LIB_TCLCL) @prefix@/lib $(RANLIB) @prefix@/lib/$(LIB_TCLCL) # libTcl is no longer installed as of 13-Nov-99 # -test -f @prefix@/lib/libTcl.a && rm -f @prefix@/lib/libTcl.a || true # ln -s @prefix@/lib/libtclcl.a @prefix@/lib/libTcl.a clean: $(RM) $(LIB_TCLCL) $(TCL2C) *.o config.log config.cache \ embedded-tk.cc embedded-tclobj.cc embedded-tcl.cc realclean: $(MAKE) clean rm -f Makefile config.log config.cache config.status distclean: realclean tags: force ctags -tdwC $(SRC) *.h $(TKSRC)/*.c $(TKSRC)/*.h \ $(TCLSRC)/*.c $(TCLSRC)/*.h force: depend: $(MKDEP) $(INCLUDES) $(DEFINE) $(SRC) tar: force tar=tclcl-`cat VERSION`-@V_TAR_TARGET@.tar.gz ; \ rm -f $$tar ; \ @V_TARCMD@ - README CHANGES.html @V_TAR_EXTRA@ $(ALL) | \ gzip -c > $$tar srctar: force @cwd=`pwd` ; dir=`basename $$cwd` ; \ name=tclcl-`cat VERSION | tr A-Z a-z` ; \ tar=tclcl-src-`cat VERSION`.tar.gz ; \ list="" ; \ for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \ echo \ "(rm -f $$tar; cd .. ; ln -s $$dir $$name)" ; \ (rm -f $$tar; cd .. ; ln -s $$dir $$name) ; \ echo \ "(cd .. ; tar cfh $$tar [lots of files])" ; \ (cd .. ; tar cfh - $$list) | gzip -c > $$tar ; \ echo \ "rm ../$$name; chmod 444 $$tar" ; \ rm ../$$name; chmod 444 $$tar # Create makefile.vc for Win32 development by replacing: # "# !include ..." -> "!include ..." makefile.vc: Makefile.in $(PERL) -pe 's/^# (\!include)/\!include/o' < Makefile.in > makefile.vc tclcl-1.20/otcldoc0000775000076400007660000006344406526750664013026 0ustar tomhnsnam#!/bin/sh # the exec restarts using tclsh which in turn ignores # the command because of this backslash: \ exec tclsh "$0" "$@" # # otcldoc - a simple script for translating otcl classes into # an html hyperlinked document. Inspired by javadoc. # Basic algorithm: for a given set of input files, find all Class # definitions. Put the text in the comment immediately preceding the # class def in the "description" section of the doc. # Parse the Class definition to locate superclasses and at # that to the "superclasses" section. Locate each method # labeled as instproc, public, or private, and enter desriptions # in the "Public/Private Methods" sections of the html doc. # # TO-DO: # # Add a cross-links for methods as Elan did for classes # (in format_line) # # Separate public and private methods into different sections # of the web page. [DONE] # # Add a tags section to the comment so we can include # "see also" refs, author info, etc. # # Do more interesting html formatting of code, e.g., highlight # class names and add hyperlinks. # # Add tags for C++ methods so they will not only be documented # in the OTcl module, but they will also appear in the html doc # in a special section. # # Have a separate pass that determines all of children used by # a class so we can build the class interdependecnies into the # doc (i.e., we should encompss more than just superclass relationships) # [DONE] # # Add hyperlinks from method description to actual OTcl proc. # [DONE] # # Create a top-level index. # [DONE - rough cut] # # Add keyword or comment to set up inherits-from/overrides relationships. # # Parsing of the Class definition should not assume it all fits on a single line. # (WidgetClass definitions, for example, often span multiple lines.) [DONE] # # Parse WidgetClass definitions, presenting available attributes and their defaults in html. # i.e. Process "-configspec"/"-config" and "-default" similar to the way "-superclass" is handled. # set app [pwd] set outputDir /var/tmp/doc-[file tail [pwd]] set indexFileName index.html set classString Class exec mkdir -p $outputDir set outputChannel stdout set nlines 0 proc emit s { global outputChannel puts $outputChannel $s } proc emit_nonewline s { global outputChannel puts -nonewline $outputChannel $s } # # Mape an OTcl class name to an html file name # proc class_to_file c { set f "" # map slashes to dashes set sep "" foreach s [split $c /] { set f "$f$sep$s" set sep - } return $f.html } # # Arrange for output to go to the appropriate output file. # proc set_class c { global outputChannel outputDir if { $outputChannel != "stdout" } { close $outputChannel } set outputChannel [open $outputDir/[class_to_file $c] w] } # # Arrange for output to go to the appropriate output file. # proc set_generic_class {} { global outputChannel outputDir if { $outputChannel != "stdout" } { close $outputChannel } set outputChannel [open $outputDir/[class_to_file "Generic"] w] } # # Return a list of the otcl class definitions # found in the file. Set up a table (called "lineOfClass") # to map class name to line number and a table (called "methods") # that maps a class name to a list of line numbers that # correspond to each method of that class. # proc find_tcl_classes {} { global line nlines lineOfClass public_methods private_methods proc_methods generic_proc_methods classString set classes "" set n 0 while { $n < $nlines } { set s [split $line($n)] if { [lindex $s 0] == $classString } { set cname [lindex $s 1] if { $cname != "instproc" && $cname != "proc" && $cname != "private" && $cname != "public" } { set classes "$classes $cname" set lineOfClass($cname) $n } } elseif { "[lindex $s 0]" == "proc" } { lappend generic_proc_methods $n # if second word is one of the following, make sure the first word is not a standard tcl/tk command # (This is to avoid the situations where "public", "proc", etc. are used as variables sent as argument to a command) } elseif { [lsearch -exact [info commands {[a-z]*}] [lindex $s 0]] == -1 } { if { "[lindex $s 1]" == "instproc" || "[lindex $s 1]" == "public" } { set cname [lindex $s 0] lappend public_methods($cname) $n } elseif { "[lindex $s 1]" == "private" } { set cname [lindex $s 0] lappend private_methods($cname) $n } elseif { "[lindex $s 1]" == "proc" } { set cname [lindex $s 0] lappend proc_methods($cname) $n } } incr n } return $classes } proc class_anchor_name lineno { global line set s $line($lineno) return [lindex $s 1] } proc method_anchor_name lineno { global line set s $line($lineno) return [lindex $s 0]::[lindex $s 2] } proc generic_method_anchor_name lineno { global line set s $line($lineno) return [lindex $s 1] } # # Read the important lines from input file into the "lines" array. # While we're reading in the file, dump the code to correponsding # output html file and insert anchors for each Class and instproc # proc read_tcl_file fname { global line nlines outputDir file classString set outFile $outputDir/$fname.html exec mkdir -p [file dirname $outFile] set out [open $outFile w] puts $out "
    "
    
    	set cont 0
    	set contClassDefn 0
    	set f [open $fname r]
    	while 1 {
    		set rawline [gets $f]
    		if [eof $f] {
    			break
    		}
    		set s $rawline
    		
    		# Since we are outputting in an html 
     section, 
    		# change '<' to '<' so that '<' is not interpreted
    		# to be the start of a specially interpreted element,
    		# such as '' which means strike-through.
    		regsub -all {<} $rawline {\<} rawline
    
    		set linekReset 0
    		if $cont {
    			set c [continuation $s]
    			if { $c != "" } {
    				set s $c
    			} else {
    				set cont 0
    			}
    			set k [expr $nlines - 1]
    			set linekReset 1
    			set oldlinek $line($k)
    			set line($k) "$line($k) $s"
    		} 
    
    		# For Class definitions, read in the entire body of the definition even if it spans multiple lines.
    		# To do this, we count open and closed braces.
    		# The motivation for this was to be able to process the "-configuration" option of a Class definition
    		# in order to display the default settings for an Object.
    		if { $contClassDefn } {
    			if { [is_tcl_comment $s] == 1} {
    			    continue
    			}
    
    			set c [continuation $s]
    			if { $c != "" } {
    				set s $c
    				set cont 1
    			}
    
    			set c [classDefnContinuation $s]
    			global unclosedbraces
    			if { $unclosedbraces > 0 } {
    			    set s $c
    			} else {
    			    set contClassDefn 0
    			}
    			if { $linekReset == 1} {
    			    set line($k) $oldlinek
    			} else {
    			    set k [expr $nlines - 1]
    			}
    			while { $line($k) == "" } {
    			    incr k -1
    			}
    			set line($k) "$line($k) $s"
    		}
    
    		#
    		# Strip off trailing open brace if necessary
    		# (escape rules in split are too difficult otherwise)
    		#
    		set stringb4trim $s
    		set s [string trim $s]
    		if { [string last \{ $s] == [expr [string length $s] - 1] } {
    			set s [string range $s 0 [expr [string length $s] - 2]]
    		}
    		
    
    		set words [split $s]
    		#
    		# Preserve all class and method definitions in addition
    		# to comments and blank lines.  (We need the blank
    		# lines to server as delimeters in the logic used later.)
    		#
    		if { [is_tcl_comment $s] || [lindex $words 0]  == $classString ||
    			[lindex $words 1] == "instproc" ||
    			[lindex $words 1] == "public" ||
    			[lindex $words 1] == "private" ||
    			[lindex $words 1] == "proc" ||
    			[lindex $words 0] == "proc" ||
    				$words == "" } {
    
    			set c [continuation $s]
    			if { $c != "" } {
    				set s $c
    				set cont 1
    			}
    
    			#if s has configuration, read til the brace afterwards is closed into a var which i will process later
    			if {[lindex $words 0] == $classString && 
    			    [lindex $words 1] != "instproc" &&
    			    [lindex $words 1] != "public" &&
    			    [lindex $words 1] != "private" &&
    			    [lindex $words 1] != "proc" &&
    			    ![is_tcl_comment $s] } {
    				set c [classDefnContinuation $stringb4trim]
    				global unclosedbraces
    				if { $unclosedbraces > 0 } {
    				    set s $c
    				    set contClassDefn 1
    				}
    			}
    
    			set line($nlines) $s
    			set file($nlines) $fname
    
    			if { [lindex $words 0]  == $classString } {
    				set anc [class_anchor_name $nlines]
    				puts $out "
    "
    			} elseif { [lindex $words 0] == "proc" } {
    				set anc [generic_method_anchor_name $nlines]
    				puts $out "
    "
    			# if second word is one of the following, make sure the first word is not a standard tcl/tk command
    			# (This is to avoid the situations where "public", "proc", etc. are used as variables sent as argument to a command)
    			} elseif { [lsearch -exact [info commands {[a-z]*}] [lindex $words 0]] == -1 } {
    				if { [lindex $words 1] == "instproc" ||
    					[lindex $words 1] == "public" ||
    					[lindex $words 1] == "private" ||
    					[lindex $words 1] == "proc" } {
    					set anc [method_anchor_name $nlines]
    					puts $out "
    "
    				}
    			}
    			incr nlines
    		}
    		puts $out $rawline
    	}
    	puts $out "
    " close $out close $f } # # Like read_tcl_file, but for C++. Doesn't bother # generating C++ html files. # proc read_cpp_file fname { global line nlines outputDir file tcl_class classString set outFile $outputDir/$fname.html exec mkdir -p [file dirname $outFile] set out [open $outFile w] puts $out "
    "
    
    	set f [open $fname r]
    	while 1 {
    		set rawline [gets $f]
    		if [eof $f] {
    			break
    		}
    		set s $rawline
    		set words [split $s]
    		#
    		# Collect up all the TclClass names so we can
    		# warn of classes that don't have structured
    		# comments.
    		#
    		foreach w $words {
    			if [string match TclClass(*) $w] {
    				set s [string first \" $w]
    				set e [string last \" $w]
    				if { $s < 0 } {
    					continue
    				}
    				incr s
    				incr e -1
    				set c [string range $w $s $e]
    				# 
    				set tcl_class($c) 1
    				break
    			}
    			#XXX skip C++ methods for now.
    		}
    
    		#
    		# Preserve all comments since all interesting OTcl
    		# methods are defined inside C comments.
    		#
    		if { [is_c_comment $s] } {
    			#
    			# convert to tcl comment for consistency with
    			# other code
    			#
    			set ss [convert_comment $s]
    			set words [split $ss]
    
    			set line($nlines) $ss
    			set file($nlines) $fname
    
    			if { [lindex $words 1] == "" } {
    
    				set ss [strip_otcl_tag $ss]
    				set line($nlines) [string trimleft $ss]
    
    				if { [lindex $words 2] == $classString } {
    					set anc [class_anchor_name $nlines]
    					puts $out "
    "
    				} elseif { [lindex $words 3] == "instproc" ||
    					[lindex $words 3] == "public" ||
    					[lindex $words 3] == "private" ||
    					[lindex $words 3] == "proc" } {
    					set anc [method_anchor_name $nlines]
    					puts $out "
    "
    				} elseif { [lindex $words 2] == "proc" } {
    					set anc [generic_method_anchor_name $nlines]
    					puts $out "
    "
    				}
    			}
    
    			incr nlines
    		}
    		puts $out $rawline
    	}
    	puts $out "
    " close $out close $f } proc convert_comment s { set s [string trimleft $s] if { [string index $s 0] == "*" } { if { [string index $s 1] == "/" } { # # terminate the comment block with a special # marker (#.) so we can detect it later # return "\#. [string range $s 2 end]" } return "\#[string range $s 1 end]" } # # must be a "/*" # return "\#[string range $s 2 end]" } proc strip_otcl_tag s { set k [string first $s] return [string range $s [expr $k + 6] end] } proc is_tcl_comment s { # if { [string index $s 0] == "#" } { # return 1 # } if { [regexp "^\[ \t\]*#" $s] } { return 1 } return 0 } # # Return true iff the string s begins with "/*", "*", ignoring # leading whitespace. This is not necessarily a C comment, but is # good enough for our purposes here. # proc is_c_comment s { set s [string trimleft $s] if { [string index $s 0] == "*" || [string range $s 0 1] == "/*" } { return 1 } return 0 } # # return null if the string does not end in backslash # otherwise, return the string less the backslash char # proc continuation s { set k [expr [string length $s] - 1] if { [string index $s $k] == "\\" } { incr k -1 return [string range $s 0 $k] } return "" } # # return null if the string closes all the open braces # otherwise, return the string (NOTE that if $s is "", that is what will be returned) # proc classDefnContinuation s { global unclosedbraces if { [is_tcl_comment $s] } { return " " } if {![info exists unclosedbraces]} { set unclosedbraces 0 } regsub -all {[^\{]} $s {} openers regsub -all {[^\}]} $s {} closers set openbraces [string length $openers] set closebraces [string length $closers] set ucb [expr $unclosedbraces + $openbraces - $closebraces] set unclosedbraces $ucb if { $unclosedbraces > 0 } { return $s } else { return "" } } proc strip s { set n 1 if { [string index $s $n] == " " } { set n 2 } return [string range $s $n end] } proc get_comment_block lineNo { global file if { [file extension $file($lineNo)] == ".tcl" } { return [get_tcl_comment_block $lineNo] } else { return [get_cpp_comment_block $lineNo] } } proc format_line l { global lineOfClass set l [strip $l] # set up class cross references set q "" foreach w [split $l] { # trim punctuation. set c [string trim $w ".;:?,()\{\}[]!"] if [info exists lineOfClass($c)] { set o "
    $w" } else { set o $w } set q "$q $o" } return $q } # # Return the comment block immediately above line number $lineNo. # Removes leading comment characters (but does not strip whitespace # since we probably want to preserve tabs). But it does strip # a single space char if present. Assume $lineNo < $nlines. # proc get_tcl_comment_block lineNo { global line nlines set n $lineNo incr n -1 # # First skip over whitespace # while { $n > 0 } { set s $line($n) if [is_tcl_comment $s] { break } set w [string trim $s] if { $w != "" } { # ran into non-comment, non-whitespace break } incr n -1 } # # Now skip up past the comment body # while { $n > 0 } { set s $line($n) if ![is_tcl_comment $s] { break } incr n -1 } # # gather up the text # set blk "" while 1 { incr n if { $n >= $lineNo } { break } set blk "$blk\n[format_line $line($n)]" } return $blk } # # Just like get_tcl_comment_block but for C++. # Note that the C++ comment has been converted to tcl # syntax --- the only difference is the comment is # below the method rather than above it. # proc get_cpp_comment_block lineNo { global line nlines set n $lineNo # # gather up the text # Note that we terminated the comment block # with "#." when we converted from C to tcl. # set blk "" while 1 { incr n set s $line($n) if { $n >= $nlines || [string first "#." $s] >= 0 || \ ![is_tcl_comment $s] } { break } set blk "$blk\n[format_line $line($n)]" } return $blk } proc inList { list item } { return [expr [lsearch $list $item] >= 0] } proc add_class_edge { parent child } { global subclass if ![inList subclass($parent) $child] { lappend subclass($parent) $child } } # XXX not sure if this will do the right thing proc copy_class { dst src } { global lineOfClass set lineOfClass($dst) $lineOfClass($src) } # # compute the superclass relationships # proc arrange_class_hierarchy classes { global superclass foreach c $classes { set sc [get_superclasses $c] set superclass($c) $sc foreach super $sc { add_class_edge $super $c } } } # # Return true iff we encountered the class definition # of the class $c. # proc class_known c { global lineOfClass return [info exists lineOfClass($c)] } # # Return the superclasses of a given class $c. We no longer assume that the # entire "-superclass" directive is on the same line as the Class keyword. # proc get_superclasses c { global line lineOfClass set s $line($lineOfClass($c)) if {[regexp {\-superclass[ ]*(.*)} $s match allAfterDashSuperClass]} { return [lindex $allAfterDashSuperClass 0] } else { return "" } } proc is_otcl_class c { global file lineOfClass return [string match [file extension $file($lineOfClass($c))] ".tcl"] } proc is_otcl_method lineno { global file return [string match [file extension $file($lineno)] ".tcl"] } proc emit_generic_header {} { global file lineOfClass private_methods public_methods proc_methods generic_proc_methods #XXX should dump comment that otcldoc autogen'd this #XXX should use paramters for link color, font etc if [info exists generic_proc_methods] { foreach l $generic_proc_methods { set files($file($l)) 1 } } set flist [array names files] emit "\ \n\ \n\ Object\n\ \n\ \n\

    MASH Proc Methods Not Installed on a Particular Object

    \n\

    Files

    " foreach fname $flist { set flink $fname.html emit "\ \n\ " } } proc emit_header c { global file lineOfClass private_methods public_methods proc_methods #XXX should dump comment that otcldoc autogen'd this #XXX should use paramters for link color, font etc if [info exists public_methods($c)] { foreach l $public_methods($c) { set files($file($l)) 1 } } if [info exists private_methods($c)] { foreach l $private_methods($c) { set files($file($l)) 1 } } if [info exists proc_methods($c)] { foreach l $proc_methods($c) { set files($file($l)) 1 } } set flist [array names files] if { $flist == "" } { set flist $file($lineOfClass($c)) } set tcl 0 set cpp 0 foreach f $flist { if [string match [file extension $f] ".tcl"] { set tcl 1 } else { set cpp 1 } } global classtype classfiles if { $tcl } { if { $cpp } { set cn "Split C++/OTcl Class" set classtype($c) split } else { set cn "OTcl Class" set classtype($c) otcl } } else { set cn "C++ Class" set classtype($c) c++ } set classfiles($c) $flist emit "\ \n\ \n\ $c Object\n\ \n\ \n\

    $cn $c

    \n\

    Files

    " foreach fname $flist { set flink $fname.html emit "\ \n\ " } } proc emit_trailer {} { #XXX emit "" } proc class_link c { set link [class_to_file $c] return "$c" } proc emit_class_list clist { emit "
      " set sep "" foreach sc $clist { emit_nonewline "$sep[class_link $sc]" set sep ",\n\t" } emit "
    " } proc emit_superclasses c { set scl [get_superclasses $c] if { $scl != "" } { emit "

    \n

    Superclasses

    \n" emit_class_list $scl } } proc emit_subclasses c { global subclass if ![info exists subclass($c)] { return } emit "

    \n

    Subclasses

    \n" emit_class_list $subclass($c) } proc emit_syntax c { global public_methods private_methods line file emit "

    Syntax

    " if ![info exists public_methods($c)] { #XXX no methods (in particular, no constructor) emit "
      $c::init
    " return } # # find the constructor # foreach lineno $public_methods($c) { set s $line($lineno) set proc [lindex $s 2] if { $proc == "init" } { set args [lindex $s 3] set link $file($lineno).html\#[method_anchor_name $lineno] emit "
      $c::init $args
      " set desc [get_comment_block $lineno] if { $desc != "" } { emit $desc emit "
      " } emit "

    " return } } if [info exists private_methods($c)] { foreach lineno $private_methods($c) { set s $line($lineno) set proc [lindex $s 2] if { $proc == "init" } { emit \ "
      Abstract base class. Constructor is private.
    " return } } } emit "
      No constructor.
    " } # # Lists each default configuration for this Class in a two-column format, # the first column displaying the option-name, the second column displaying the default value. # proc emit_default_configuration c { global lineOfClass line # put everything from the Class defn after "-configuration " into the variable "allAfterDashConfig" if {[regexp {\-configuration[ ]*(\{.*)} $line($lineOfClass($c)) match allAfterDashConfig]} { # put the item immediately after "-configuration " into a list variable set configuration_list [lindex $allAfterDashConfig 0] if { [is_even [llength $configuration_list]] } { # convert the list to an array of default values, indexed by the option-names array set configuration_array $configuration_list # output a heading emit "\

    Default Configuration

    \n\ " emit "\
      Use the add_option method provided by the Configuration object to override these default settings:
    \n\ " emit "
      " # output the option-name & default-value pairs in a two-column format foreach {key value} [array get configuration_array] { emit "" } emit "
      $key $value
    " } else { puts stderr "Warning: every default configuration option must have a value." puts stderr "Class $c has an uneven list of default configuration options: $configuration_list" } } } proc is_even { num } { if { [expr { $num % 2 }] == 0 } { return 1 } else { return 0 } } proc emit_description c { global lineOfClass emit "\

    Description

    \n\ " emit [get_comment_block $lineOfClass($c)] } proc emit_generic_methods { title } { global generic_proc_methods line file if ![info exists generic_proc_methods] { #XXX no methods return } emit "

    $title

    \n
      \n" foreach lineno [set generic_proc_methods] { set s $line($lineno) set proc [lindex $s 1] set args [lindex $s 2] if [is_otcl_method $lineno] { set type "(OTcl)" } else { set type "(C++)" } set link $file($lineno).html\#[generic_method_anchor_name $lineno] emit "
    • $proc $args$type
      " set desc [get_comment_block $lineno] if { $desc != "" } { emit $desc emit "
      " } emit "
      " } emit "
    " } proc emit_methods { c scope title } { global $scope\_methods line file if ![info exists $scope\_methods($c)] { #XXX no methods return } emit "

    $title

    \n
      \n" foreach lineno [set $scope\_methods($c)] { set s $line($lineno) set proc [lindex $s 2] set args [lindex $s 3] if [is_otcl_method $lineno] { set type "(OTcl)" } else { set type "(C++)" } set link $file($lineno).html\#[method_anchor_name $lineno] emit "
    • $proc $args$type
      " set desc [get_comment_block $lineno] if { $desc != "" } { emit $desc emit "
      " } emit "
      " } emit "
    " } proc emit_class_tree c { global mark subclass classtype if [info exists mark($c)] { return } # If the next line is uncommented, objects that inherit from multiple parents will only be output beneath the # parent that appears first in the tree. # set mark($c) 1 emit "
  • [class_link $c]" switch $classtype($c) { split { emit "(OTcl/C++)" } otcl { emit "(OTcl)" } c++ { emit "(C++)" } } if [info exists subclass($c)] { foreach s [lsort $subclass($c)] { emit "
      " emit_class_tree $s emit "
    " } } } # # Return true iff the class $c has no parents that # have been encountered in the scan of all input files. # proc is_root_class c { global superclass foreach p $superclass($c) { if [class_known $p] { return 0 } } return 1 } proc emit_index classes { emit "" global indexHeaderFile if { [info exists indexHeaderFile] && [file readable $indexHeaderFile] } { emit [exec cat $indexHeaderFile] emit "
    " } set link [class_to_file "Generic"] emit "
    General Tcl procs (i.e. proc methods not installed on a particular Object)" # # Go through all the classes. For each root class, dump # the class hierarchy below. A root class is a class with # no parent that will be encountered in the scan. # foreach c [lsort $classes] { if [is_root_class $c] { emit "
      " emit_class_tree $c emit "
    " } } emit "" } proc emit_timestamp {} { emit "
    Updated [exec date]." } proc emit_generic_doc {} { emit_generic_header emit_generic_methods "Procs" emit_trailer emit_timestamp } proc emit_doc c { emit_header $c emit_description $c emit_superclasses $c emit_subclasses $c emit_syntax $c emit_default_configuration $c emit_methods $c public "Public Methods" emit_methods $c private "Private Methods" emit_methods $c proc "Proc Methods" emit_trailer emit_timestamp } proc is_arg argv { if { $argv != "" } { return [string match -* [lindex $argv 0]] } return 0 } proc fatal s { puts stderr "otcldoc: $s" exit 1 } proc warn s { puts stderr "otcldoc: warning - $s" } proc usage {} { puts stderr "usage: otcldoc \[-h index-header-file] \[ -d output-dir ] \[ -i index-file-name ] \[ -c class-string ] files ..." exit 1 } proc parse_args argv { while 1 { if ![is_arg $argv] { break } set arg [lindex $argv 0] set argv [lrange $argv 1 end] set val [lindex $argv 0] if { $arg == "-d" } { global outputDir set outputDir $val set argv [lrange $argv 1 end] continue } if { $arg == "-h" } { global indexHeaderFile set indexHeaderFile $val set argv [lrange $argv 1 end] continue } if { $arg == "-i" } { global indexFileName set indexFileName $val set argv [lrange $argv 1 end] continue } if { $arg == "-c" } { global classString set classString $val set argv [lrange $argv 1 end] continue } fatal "unknown command option at '$arg'" } return $argv } if { $argv == "" } { usage } set argv [parse_args $argv] foreach f $argv { if { [file extension $f] == ".tcl" } { read_tcl_file $f } elseif { [file extension $f] == ".cc" } { read_cpp_file $f } else { fatal "$f: unknown file extension" } } set classes [find_tcl_classes] arrange_class_hierarchy $classes set_generic_class emit_generic_doc foreach c $classes { set_class $c emit_doc $c } close $outputChannel set outputChannel [open $outputDir/$indexFileName w] emit_index $classes emit_timestamp close $outputChannel foreach c [array names tcl_class] { if ![inList $classes $c] { warn "no doc for C++ class $c" } } tclcl-1.20/rate-variable.cc0000664000076400007660000001156310307471137014454 0ustar tomhnsnam/* * Copyright (c) 1995 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the Computer Systems * Engineering Group at Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/rate-variable.cc,v 1.4 2005/09/07 04:53:51 tom_henderson Exp $ (LBL)"; #include #include #ifndef WIN32 #include #endif #include "rate-variable.h" /* * The following command & the associate service procedure * creates a `rate variable'. Reading a rate variable returns * the time rate of change of its value. Writing a rate variable * updates the rate of change estimate. A rate variable can be * either simple or an array element. It must be global. This * routine is called as: * rate_variable varname filter_const * where 'varname' is the variable name (e.g., "foo" or "foo(bar)") * and 'filter_const' is a smoothing constant for the rate estimate. * It should be >0 and <1 (a value of 1 will result in no smoothing). */ struct rv_data { double rate; double filter; timeval lastupdate; int lastval; char format[16]; }; void RateVariable::init() { (void)new RateVariable; } char* RateVariable::update_rate_var(ClientData clientData, Tcl_Interp* tcl, CONST84 char* name1, CONST84 char* name2, int flags) { rv_data* rv = (rv_data*)clientData; if (rv == NULL) return ("no clientdata for rate var"); if (flags & TCL_TRACE_WRITES) { /* * the variable has been written with a new value. * compute the rate of change & make that its vale * for subsequent reads. */ char res[128]; flags &= TCL_GLOBAL_ONLY; CONST char* cv = (char *) Tcl_GetVar2(tcl, name1, name2, flags); if (cv == NULL) return (tcl->result); int curval = atoi(cv); double rate = 0.; timeval tv; gettimeofday(&tv, 0); if (rv->lastupdate.tv_sec != 0) { /* not first time through */ double dt = double(tv.tv_sec - rv->lastupdate.tv_sec) + double(tv.tv_usec - rv->lastupdate.tv_usec) * 1e-6; if (dt <= 0.) /* have to wait until next clock tick */ return NULL; double dv = double(curval - rv->lastval); if (dv >= 0.) { rate = rv->rate; rate += (dv/dt - rate) * rv->filter; /* work around tcl f.p. precision bug */ if (rate < 1e-12) rate = 0.; } } rv->rate = rate; rv->lastupdate = tv; rv->lastval = curval; sprintf(res, rv->format, rate); Tcl_SetVar2(tcl, name1, name2, res, flags); } else if (flags & (TCL_TRACE_DESTROYED|TCL_INTERP_DESTROYED)) { delete rv; } return NULL; } int RateVariable::command(int argc, const char *const*argv) { Tcl& tcl = Tcl::instance(); const char* fmt; if (argc == 4) fmt = argv[3]; else if (argc == 3) fmt = "%g"; else { tcl.result("usage: rate_variable varname filter_const"); return (TCL_ERROR); } double fconst = atof(argv[2]); if (fconst <= 0. || fconst > 1.) { tcl.result("rate_variable: invalid filter constant"); return (TCL_ERROR); } rv_data* rv = new rv_data; rv->filter = fconst; rv->rate = 0.; rv->lastupdate.tv_sec = 0; rv->lastval = 0; strcpy(rv->format, fmt); int sts = Tcl_TraceVar(tcl.interp(), (char*)argv[1], TCL_TRACE_WRITES|TCL_TRACE_UNSETS, (Tcl_VarTraceProc *) update_rate_var, (ClientData)rv); if (sts != TCL_OK) delete rv; return (sts); } tclcl-1.20/rate-variable.h0000664000076400007660000000425307711534656014327 0ustar tomhnsnam/* * Copyright (c) 1996 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the MASH Research * Group at the University of California Berkeley. * 4. Neither the name of the University nor of the Research Group may be * used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef rate_variable_h #define rate_variable_h #include "tclcl.h" class RateVariable : public TclCommand { public: RateVariable() : TclCommand("rate_variable") {} static void init(); protected: static char* update_rate_var(ClientData, Tcl_Interp*, CONST84 char* name1, CONST84 char* name2, int flags); int command(int argc, const char*const* argv); }; #endif tclcl-1.20/README0000664000076400007660000000026306256277517012320 0ustar tomhnsnamThis directory contains the tcl/C++ interface used by vic, vat, ns, rtp_play, and nam. Be very careful when you change anything as all these tools depend on this code. - Steve tclcl-1.20/tcl-http.tcl0000664000076400007660000002723006624341206013670 0ustar tomhnsnam# # Copyright (c) 1998 Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the Computer Systems # Engineering Group at Lawrence Berkeley Laboratory. # 4. Neither the name of the University nor of the Laboratory may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # ------------ # # Filename: tcl-http.tcl # -- Created on Sun May 31 1998 # -- Author: Cynthia Romer # # @(#) $Header: /cvsroot/otcl-tclcl/tclcl/tcl-http.tcl,v 1.4 1998/11/17 18:37:58 yatin Exp $ # # # Copyright (c) 1998 Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the Computer Systems # Engineering Group at Lawrence Berkeley Laboratory. # 4. Neither the name of the University nor of the Laboratory may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # ------------ # # Filename: tcl-http.tcl # -- Created on Sat May 30 1998 # -- Author: Yatin Chawathe # # Description: # # # @(#) $Header: /cvsroot/otcl-tclcl/tclcl/tcl-http.tcl,v 1.4 1998/11/17 18:37:58 yatin Exp $ # Class HTTP HTTP public init { } { $self next # enable the user interface by default only if we are using Tk if { [lsearch -exact [package names] Tk] != -1 } { $self set enable_output_ 1 } else { $self set enable_output_ 0 } $self set token_count_ 0 } # # temporary helper function until Cindy converts the serial geturl requests # to a sequence of parallel requests # HTTP public geturl { url } { set token [$self start_fetch $url] $self wait return $token } HTTP public geturls { args } { set tokens [eval "$self start_fetch $args"] $self wait return $tokens } # # args can be a list of urls # HTTP public start_fetch { args } { $self instvar token_count_ urls_ set urls_ $args foreach url $args { lappend tokens [::http::geturl $url \ -progress "$self progress_callback" \ -command "$self fetch_done"] incr token_count_ } if { [llength $tokens] == 1 } { return [lindex $tokens 0] } else { return $tokens } } HTTP public wait { } { $self tkvar vwait_ if { ![info exists vwait_] } { $self start_ping_pong # start_ping_pong did an update (during which, the vwait_ # variable might have been set), so check for existence of # vwait_ again if { ![info exists vwait_] } { vwait [$self tkvarname vwait_] } $self stop_ping_pong } unset vwait_ } HTTP private fetch_done { token } { $self instvar token_count_ $self tkvar vwait_ incr token_count_ -1 if { $token_count_ <= 0 } { set vwait_ 1 set token_count_ 0 $self instvar total_bytes_ current_bytes_ per_token_ unset total_bytes_ current_bytes_ per_token_ } } HTTP private progress_callback { token total_bytes current_bytes } { $self instvar total_bytes_ current_bytes_ per_token_ if { ![info exists total_bytes_] } { set total_bytes_ 0 set current_bytes_ 0 } if { ![info exists per_token_($token)] } { set per_token_($token) $current_bytes incr total_bytes_ $total_bytes incr current_bytes_ $current_bytes } else { set current_bytes_ [expr $current_bytes_ - \ $per_token_($token) + $current_bytes] set per_token_($token) $current_bytes } $self instvar urls_ $self print_status "Fetching $urls_ ... (rcvd $current_bytes_ bytes)" } HTTP private build_widget { } { $self instvar frame_ rect_ if { ![info exists frame_] } { set cnt 0 while [winfo exists .http_$cnt] { incr $cnt } set frame_ .http_$cnt toplevel $frame_ wm withdraw $frame_ wm transient $frame_ . wm title $frame_ "HTTP Status" set new_toplevel 1 } set textheight [font metric http_font -linespace] label $frame_.label -font http_font -width 100 \ -justify left -anchor w -text "" canvas $frame_.canvas -height $textheight \ -width 50 -bd 1 -relief sunken pack $frame_.canvas -side right pack $frame_.label -expand 1 -fill x -side left set rect_ [$frame_.canvas create rectangle 1 2 10 $textheight \ -fill blue -outline blue] $frame_.canvas move $rect_ -1000 0 if [info exists new_toplevel] { # center the window update idletasks update set x [expr [winfo screenwidth $frame_]/2 \ - [winfo reqwidth $frame_]/2 \ - [winfo vrootx [winfo parent $frame_]]] set y [expr [winfo screenheight $frame_]/2 \ - [winfo reqheight $frame_]/2 \ - [winfo vrooty [winfo parent $frame_]]] wm geom $frame_ +$x+$y } } HTTP private start_ping_pong { } { if { ![$self set enable_output_] } return $self instvar frame_ rect_ after_id_ hide_id_ dir_ pos_ if { [lsearch -exact [package names] Tk] != -1 } { # found Tk; display a UI if { ![info exists frame_] } { $self build_widget } if { [wm state [winfo toplevel $frame_]] == "withdrawn" } { wm deiconify $frame_ } if { ![info exists dir_] } { set dir_ 2 set pos_ 1 } set coords [$frame_.canvas coords $rect_] set x1 [lindex $coords 0] set y1 [lindex $coords 1] set x2 [lindex $coords 2] set y2 [lindex $coords 3] $frame_.canvas coords $rect_ $pos_ $y1 [expr $pos_-$x1+$x2] $y2 } else { $self set ping_cnt_ 0 puts -nonewline stderr "Fetching URL " } set after_id_ [after 100 "$self do_ping_pong"] if [info exists hide_id_] { after cancel $hide_id_ } $self instvar urls_ $self print_status "Fetching $urls_ ..." } HTTP private stop_ping_pong { } { if { ![$self set enable_output_] } return $self instvar after_id_ hide_id_ frame_ rect_ if [info exists after_id_] { after cancel $after_id_ unset after_id_ if { [lsearch -exact [package names] Tk] != -1 } { set hide_id_ [after idle "$self hide"] } else { puts stderr "" } } } HTTP private hide { } { $self instvar frame_ rect_ pos_ dir_ set pos_ 1 set dir_ 2 $self print_status "" $frame_.canvas move $rect_ -1000 0 if { [winfo toplevel $frame_] == $frame_ } { wm withdraw $frame_ } } HTTP private do_ping_pong { } { if { ![$self set enable_output_] } return $self instvar frame_ rect_ dir_ pos_ after_id_ if { [lsearch -exact [package names] Tk] != -1 } { incr pos_ $dir_ $frame_.canvas move $rect_ $dir_ 0 if { $pos_ <= 1 || $pos_ >= 42 } { set dir_ [expr 0 - $dir_] } } else { $self instvar ping_cnt_ incr ping_cnt_ if { $ping_cnt_ >= 10 } { puts -nonewline stderr "." set ping_cnt_ 0 } } set after_id_ [after 100 "$self do_ping_pong"] } HTTP private print_status { status } { if { ![$self set enable_output_] } return if { [lsearch -exact [package names] Tk] != -1 } { $self instvar frame_ if [info exists frame_] { $frame_.label configure -text $status } } } HTTP public set_frame { frame } { if { [lsearch -exact [package names] Tk] != -1 } { $self instvar frame_ if [info exists frame_] { destroy $frame_ } set frame_ $frame $self build_widget } } HTTP public enable_output { { yes 1 } } { $self set enable_output_ $yes } HTTP proc.invoke { } { if { [lsearch -exact [package names] Tk] != -1 } { font create http_font -family helvetica -size 10 } } Class HTTPCache HTTPCache public init { {dir ~/.mash/cache/} } { $self next $self instvar dir_ index_ index_filename_ $self create_dir $dir set dir_ [glob $dir] set index_filename_ [file join $dir_ index.db] if {! [catch {set f [open $index_filename_]}] } { while 1 { set line [gets $f] if [eof $f] { close $f break } set index_([lindex $line 0]) [lindex $line 1] } } } HTTPCache public get { url {last_modified {}} } { $self instvar index_ if [info exists index_($url)] { if { $last_modified != {} } { if [catch {set mtime [file mtime $index_($url)]}] \ { return "" } if { $last_modified==-1 || $mtime < $last_modified } \ { return "" } } if [catch {set f [open $index_($url)]}] { return "" } fconfigure $f -translation binary set buffer "" while { ![eof $f] } { append buffer [read $f 4096] } close $f return $buffer } else { return "" } } HTTPCache public put { url buffer } { $self instvar index_ dir_ index_filename_ if { ![info exists index_($url)] } { set update_index_file 1 } set name cache[clock clicks] set index_($url) [file join $dir_ $name[file extension $url]] set f [open $index_($url) w 0644] fconfigure $f -translation binary puts -nonewline $f $buffer close $f # write the index file if [catch {set f [open $index_filename_ a]}] { set f [open $index_filename_ w 0644] } puts $f [list $url $index_($url)] close $f } HTTPCache public flush { } { $self instvar index_ dir_ file delete -force -- [glob -nocomplain [file join $dir_ *]] catch {unset index_} } HTTPCache private create_dir { path } { if { ![file isdirectory $path] } { set dir "" foreach split [file split $path] { set dir [file join $dir $split] if { ![file exists $dir] } { # this command will cause an error # if it is not possible to create the dir file mkdir $dir } } } } # create an HTTP object HTTP Http tclcl-1.20/tcl-import.tcl0000664000076400007660000006007507513421012014217 0ustar tomhnsnam# # Copyright (c) 1998 Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the Computer Systems # Engineering Group at Lawrence Berkeley Laboratory. # 4. Neither the name of the University nor of the Laboratory may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # ------------ # # Filename: new-tcl-import.tcl # -- Created on Fri Jul 24 1998 # -- Author: Yatin Chawathe # # Description: # # # @(#) $Header: /cvsroot/otcl-tclcl/tclcl/tcl-import.tcl,v 1.6 2002/07/12 00:25:46 tim1724 Exp $ # # # Support for a simple, java-like import construct. # Class Import Import public init { } { $self next $self set use_http_cache_ 1 } # # For the objects provided as args, source the files in # which their class & methods are defined. # After attempting to import all supplied items, if any were unimportable, # an error will be flagged with a detailed errormsg. # Import public import { args } { $self instvar import_dirs_ table_ # initialize the import table only on demand if { ![info exists import_dirs_] } { $self init_table } # ensure that the TCLCL_IMPORT_DIRS env var hasn't changed since we # initialized the table $self consistency_check foreach item $args { if [info exists table_($item)] { set file_list $table_($item) # although it's poor programming practice, # an object can be defined in multiple files foreach file $table_($item) { if { [set msg [$self source_file $file]]!=""} { error "could not source $file for\ $item:\n$msg" } } } else { # if the object is not in the table_, # try searching for default name (.mash) # in each of the env(TCLCL_IMPORT_DIRS) set list {} foreach dir $import_dirs_ { lappend list [$self file join $dir \ [$self class_to_file \ $item].mash] } set imported 0 foreach filename $list { if { [$self source_file $filename] == "" } { set imported 1 break } } if { ! $imported } { error "don't know how to import $item\n not\ mapped in: $import_dirs_\ \n and not found in default\ locations: $list" } } } } # # As long as the import procedure has not yet been invoked, the user is # free to override mappings that may be read from importTables. # Import public override_importTable_mapping { object file_list } { $self instvar overrideTable_ import_dirs_ if { [info exists import_dirs_] } { puts stderr "warning: ignoring \"override_importTable_mapping\ $object $file_list\" \n\ It is illegal to modify the internal table \ after the first call to import." return } if { [info exists overrideTable_($object)] } { unset overrideTable_($object) } foreach file $file_list { set fname [$self condense_into_absolute_filename \ [$self file join [pwd] $file]] lappend overrideTable_($object) $fname } } # # Wait to redefine the unknown proc until we are running in the interpreter, # because the original unknown proc is not defined until after this # tcl-object.tcl code is processed. (I believe the original unknown proc # is actually defined when Tcl_AppInit calls Tcl_Init to set up the # script library facility.) # Import proc.private redefine_unknown {} { # # If a proc/instproc is called on an unknown class, you'll wind # up here. If auto-importing is enabled, attempt to import the class. # rename unknown unknown.orig # Rather than redefining this procedure in tcl/library/init.tcl, # we can rename & augment it here for the mash interpreter. proc unknown { args } { # first try tcl's original unknown proc and return if # successful if { ![catch "eval {unknown.orig} $args" m] } { return } # otherwise, if autoimporting is enabled, # if able to import an item by this name, do so and return # btw, if the stuff in catch quotes causes "unknown" to # get called, error = "too many nested calls to # Tcl_EvalObj (infinite loop?)" $self instvar autoimport_ if { [info exists autoimport_] && $autoimport_ } { really_import [lindex $args 0] } else { # if not trying to import, puts original error msg error "$m" } } # prevent this method from being called again Import proc.private redefine_unknown {} {} } # # As new objects are needed, the unknown proc will catch them and # import the files that define them and their methods. # As an intended side-effect, explicit imports will be ignored # until auto-import is disabled. # Import proc.public enable_autoimport {} { # XXX this should be done somewhere else import Class Object mashutils Import set autoimport_ 1 $self redefine_unknown return } # Import proc.public disable_autoimport {} { Import set autoimport_ 0 return } # # Auto-importing is disabled by default. # (And because dynamic loading using unknown yet, due to the fact the unknown # isn't called when the -auperclass attribute is used in a Class defn.) # Import disable_autoimport # # Read the environment variable, TCLCL_IMPORT_DIRS, and store the directories in a list instvar. # Afterwards, makes a call to the instproc that generates the table. # Import private init_table { } { $self instvar import_dirs_ global env # If TCLCL_IMPORT_DIRS is not set before first time import proc # is called, it is set to '.' # Note that otherwise, '.' is not appended to TCLCL_IMPORT_DIRS. if { ![info exists env(TCLCL_IMPORT_DIRS)] } { set env(TCLCL_IMPORT_DIRS) . } set import_dirs_ "" foreach dir [$self smart_parse_env_var $env(TCLCL_IMPORT_DIRS)] { # If dir is relative, it is expanded to absolute. # Relative pathnames in TCLCL_IMPORT_DIRS will be considered # relative to '.' # which is the directory the mash interpreter was launched from # (unless the cd proc has been called since then) # So if mashlets are bing run from a browser, '.' starts out as # the directory from which the browser was launched. lappend import_dirs_ [$self condense_to_absolute_filename $dir] } # locate the actual import directories set dirs [$self find_import_dirs $import_dirs_] # the first time import is called, build a table of mappings from # objects to the file(s) they are defined in $self make_table $dirs } # # Build an internal table of mappings from objects to the file(s) they # are defined in. # Import private make_table { dirs } { foreach d $dirs { $self read_dir $d } $self incorporate_table_overrides } # # After the table_ has been generated, override existing mappings with # any user-defined mappings. # Import private incorporate_table_overrides {} { $self instvar overrideTable_ table_ foreach object [array names overrideTable_] { set table_($object) $overrideTable_($object) } } # # Return a list of directories in which a readable importTable can be found. # For every path in TCLCL_IMPORT_DIRS, importLocation will be read, if # it exists, and the absolute pathnames of the importTables that it points # to will be appended to import_table_list_ . # For dirs in which a readable importLocation file is not found, # the absolute pathname of the importTable in that dir, if one exists, # will be appended instead. # Directories may be named using complete pathnames or pathnames relative # to CURRENTDIR. # Import private find_import_dirs { dirs } { # Generate a list of potential directories in which an importTable # may be found set list {} foreach dir $dirs { set importLocation [$self file join $dir importLocation] set r [$self file readable $importLocation] if [lindex $r 0] { set lines [$self read_file_into_list $importLocation] foreach line $lines { # append absolute filename on this line to # the list lappend list [$self \ condense_to_absolute_filename \ [$self file join $dir $line]] } if { [lindex $r 1] != {} } { # destroy the http token unset [lindex $r 1] } } else { lappend list $dir } } # prune the list down to the directories in which an importTable # is actually readable $self instvar last_modified_ set dirs "" foreach d $list { set import_table [$self file join $d importTable] set last_modified_($import_table) -1 set r [$self file readable $import_table] if [lindex $r 0] { lappend dirs $d if { [lindex $r 1] != {} } { # destroy the http token unset [lindex $r 1] } } } #if { [llength $dirs] > 0 } { # puts stderr "readable importTables found in: $dirs" #} else { # puts stderr "no readable importTables found" #} return $dirs } # # By reading the importTable in the provided directory dir, # continue to define the elements of the table_ array. Each element of # this array is indexed using an object name and consists of a list of # files (using absolute pathnames) in which the the object and its # methods are defined. Returns the table_ in list form. # Import private read_dir { dir } { $self instvar table_ classes_mapped_ last_modified_ set importTableFile [$self condense_to_absolute_filename \ [$self file join $dir importTable]] set last_modified_($importTableFile) -1 # fetch the importTable and break it into a list of lines set lines [$self read_file_into_list $importTableFile] # for every line in the importTable, parse out the object and # the filename, adding the file to the appropriate list element # of the table_ array if it is not there already foreach line $lines { set index [lindex $line 0] # use the absolute file name # (relative filenames are considered to be relative to # the directory containing the importTable) set fname [$self condense_to_absolute_filename \ [$self file join $dir [lindex $line 1]]] set last_modified [string trim [lindex $line 2]] # if a mapping for this object was already read from # another importTable, ignore this one if [info exists classes_mapped_($index)] { continue } # if this object already has a mapping to this filename, # skip it if {[info exists table_($index)]} { if {-1!=[lsearch -exact $table_($index) $fname]} { continue } } lappend table_($index) $fname if { $last_modified!={} } { set last_modified_($fname) $last_modified } set this_mappings($index) 1 } foreach index [array names this_mappings] { set classes_mapped_($index) 1 } } # Provide the value of an env variable and a list of the ':' separated # items is returned. # # Since [split $env(TCLCL_IMPORT_DIRS) :] # doesn't work very well if some of the ':' separated items are # URLs (w/"http:"), you can use this proc to intelligently parse up # an env variable # Import private smart_parse_env_var { env_value } { set env $env_value while {[string length [set env [string trim $env ":"]]] != 0 } { if [regexp {^([^:]+)://([^:/]+)(:([0-9]+))?(/[^:]*)} \ $env url protocol server x port trailingpath] { lappend list $url regsub {([^:]+)://([^:/]+)(:([0-9]+))?(/[^:]*)} \ $env {} env } else { regexp {^[^:]+} $env dir lappend list $dir regsub {^[^:]+} $env {} env } } return $list } Import private consistency_check { } { global env $self instvar orig_val_ if { ![info exists orig_val_] } { set orig_val_ $env(TCLCL_IMPORT_DIRS) } if { $env(TCLCL_IMPORT_DIRS) != $orig_val_ } { puts stderr "warning: ignoring modification to\ env(TCLCL_IMPORT_DIRS)\nit is illegal to\ modify this after the first call to the\ import procedure." } } # # returns an empty string on success, or the error string on failure # Import private source_file { file } { set file_readable_result [$self file readable $file] set file_readable [lindex $file_readable_result 0] if { $file_readable } { set read_token [lindex $file_readable_result 1] $self source $file $read_token if { $read_token!={} } { unset $read_token } return "" } else { return [lindex $file_readable_result 1] } } Import private source { file { read_token {} } } { $self instvar loaded_ uniq_num_ if { ![info exists uniq_num_] } { set uniq_num_ 0 } # make sure the filename has been expanded to an absolute path # with sym links followed and extraneous '.'s and '..'s removed # so that we are most likely to recognize repeated attempts to # source the same file set file [$self condense_to_absolute_filename $file] if [info exists loaded_($file)] { #puts stdout "$fileName previously sourced. \ #Not re-sourcing it." return } set loaded_($file) 1 # redirects explicit calls to the source proc within fileName # to this source proc in order to ensure that files # are not repeatedly sourced incr uniq_num_ uplevel \#0 "rename source source.$uniq_num_" uplevel \#0 "proc source {args} \{ $self source \$args \}" if [$self is_http_url $file] { set buffer [$self read_url $file $read_token] # catch errors so that errors in the file being sourced # do not cause this script to be exited prematurely # (btw, need {} around $buffer so variable substitutions # occur in the global scope and so blank lines at beginning # of buffer don't cause errors # XXX: the buffer must be sourced in the context where # "import" was called from! if [catch "uplevel \#0 {$buffer}" errormsg] { global errorInfo error "error in $file: $errormsg\n$errorInfo\n\n" } } else { # catch errors so that errors in the file being sourced # do not cause this script to be exited prematurely # XXX: the buffer must be sourced in the context where # "import" was called from! if [catch "uplevel \#0 source.orig $file" errormsg] { global errorInfo error "error in $file: $errormsg\n$errorInfo\n\n" } } # disabling the redirection to this alternate source proc uplevel \#0 {rename source {}} uplevel \#0 "rename source.$uniq_num_ source" incr uniq_num_ -1 } # # dummy procedure for backward compatibility # Import is always enabled by default # Import private enable { args } { } # # Map an OTcl class name c to a http-able name # Import private class_to_file c { regsub -all -- "/" $c "-" filename return $filename } # # Return 1 if the name is a http URL and 0 otherwise. # An http URL is of the form http:/// # Note that the trailing slash is important. # Import private is_http_url { name } { if [regexp {([^:]+)://([^:/]+)(:([0-9]+))?(/.*)} $name url protocol \ server x port trailingpath] { if { ![info exists protocol] } { return 0 } else { return [regexp -nocase {http} $protocol] } } else { return 0 } } # # Returns a buffer read from the provided http url. # If the url is unreadable, nothing is returned. # To speed up performance, can send an http_token as the # optional second arg if you know this url is readable. # Import private read_url { url {token {}} } { $self instvar use_http_cache_ cache_ last_modified_ if { $token == {} } { # rather than checking if { [$self file readable $url] != 1 } # just copying that code here to speed up performance if $use_http_cache_ { if { ![info exists cache_] } { set cache_ [new HTTPCache] } if [info exists last_modified_($url)] { set buffer [$cache_ get $url \ $last_modified_($url)] } else { set buffer [$cache_ get $url] } if { $buffer=="" } { unset buffer } } if { ![info exists buffer] } { set token [Http geturl $url] if { [lindex [set code [::http::code $token]] 1] \ != 200 } { error "couldn't read \"$url\": no such file \ or directory (HTTP code $code)" } set buffer [::http::data $token] # destroy the http token unset $token # add this to the cache if $use_http_cache_ { if { ![info exists cache_] } { set cache_ [new HTTPCache] } $cache_ put $url $buffer } } } else { set buffer [::http::data $token] } return $buffer } # # Eliminates the '..' and '.' in a pathname and returns the absolute # path of an equivalent filename after following all symbolic links. # This is useful if the filename was created using ufile join, which # doesn't evaluate the '..' and '.'. This can also be a useful pre-processing # of a filename before comparing for equality. # Note: this procedure is only valid for names of local files that are # in executable directories. # The filename is returned if the directory is invalid or not executable. # Import private condense_to_absolute_filename { name } { # XXX: for now, just return $name return $name set before_cd [pwd] # follow symlinks while { ![catch "file readlink $filename"] } { set filename [file readlink $filename] } set dirname [$self file dirname $filename] # XXX: souldn't this also be "$self file tail"? set tailname [file tail $filename] set condensed_name $filename if { ![catch "cd $dirname"] } { set condensed_name [ufile join [pwd] $tailname] } cd $before_cd return $condensed_name } Import private read_file_into_list { filename } { if [$self is_http_url $filename] { set buffer [$self read_url $filename] set lines [split $buffer "\n"] } else { set f [open $filename "r"] set lines {} while 1 { set line [gets $f] if [eof $f] { close $f break } lappend lines "$line" } } return $lines } Import private file_readable { args } { if { [llength $args] == 0 } { error "wrong # args: should be \"$self file\ readable name ?arg ...?\"" } set name [lindex $args 0] if [$self is_http_url $name] { $self instvar use_http_cache_ cache_ last_modified_ if $use_http_cache_ { if { ![info exists cache_] } { set cache_ [new HTTPCache] } if [info exists last_modified_($name)] { set buffer [$cache_ get $name \ $last_modified_($name)] } else { set buffer [$cache_ get $name] } if { $buffer!={} } { # XXX: I am creating a dummy http token # here $self instvar buf_cnt_ if ![info exists buf_cnt_] { set buf_cnt_ 0 } set token ::http::readable_$buf_cnt_ upvar #0 $token state set state(body) $buffer incr buf_cnt_ return [list 1 $token] } } if [catch {set token [Http geturl $name]} m] { return [list 0 "error executing \"::http::geturl\ $name\": $m"] } else { set code [::http::code $token] if {[lindex $code 1] != 200} { return [list 0 $code] } else { if $use_http_cache_ { if { ![info exists cache_] } { set cache_ [new HTTPCache] } $cache_ put $name [::http::data $token] } return [list 1 $token] } } } else { eval file readable $args } } # # the file instproc is basically an enhanced Tcl file proc. # The diff is that "Import::file readable" & "Import::file dirname" & # "Import::file join" procedures can handle URLs. # The only difference from the file proc in behavior is that... # for URLs, "file readable" returns a list: # if readable, list = { 1 } # if unreadable, list = { 0 } # # Note that "Import::file join" continues to have the feature that an # absolute pathname overrides any previous components. # Import public file { option args } { if { $option == "readable" } { eval [list $self] file_readable $args } elseif { $option == "dirname" } { if { [llength $args] == 0 } { error "wrong # args: should be \"$self file\ dirname name ?arg ...?\"" } else { set name [lindex $args 0] if [$self is_http_url $name] { set url $name regexp {([^:]+)://([^:/]+)(:([0-9]+))?(/.*)} \ $name url protocol server x \ port trailingpath if {[string length $trailingpath] == 0} { set trailingpath / } set trailingpath [file dirname "$trailingpath"] return "$protocol://$server$x$trailingpath" } else { eval {file $option} $args } } } elseif { $option == "join" } { if { [llength $args] == 0 } { error "wrong # args: should be \"$self file\ join name ?arg ...?\"" } else { set base_url "[string trimright [lindex $args 0] /]/" set file_name [lindex $args 1] if [$self is_http_url $file_name] { return $file_name } if { [$self is_http_url $base_url] && \ [llength $args] ==2 } { # parse URL into components regexp {([^:]+)://([^:/]+)(:([0-9]+))?(/.*)} \ $base_url url protocol server \ x port trailingpath # get rid of initial ./ in file name regsub -all {^\./} $file_name {} file_name # change any /./ to / in file name regsub -all {/\./} $file_name {/} file_name # get rid of initial ../ in file name set counter 0 while [regsub {^\.\./} $file_name {} \ file_name] { incr counter } # for each inital ../ removed, traverse # up directory tree one level while { $counter > 0 } { set trailingpath [$self \ format_as_dir_string \ [$self file dirname \ $trailingpath]] incr counter -1 } set trailingpath "[$self format_as_dir_string \ $trailingpath]$file_name" return "$protocol://$server$x$trailingpath" } else { eval {file $option} $args } } } else { eval {file $option} $args } } # # Add on a trailing / if not already there. # Import private format_as_dir_string { dir_string } { return "[string trimright [$self file join $dir_string .] .]" } # # Augment existing "source" procedure to get http files if filename starts with http. # rename source source.orig proc source {fileName} { Import instvar instance_ if ![info exists instance_] { set instance_ [new Import] } if [$instance_ is_http_url $fileName] { set buffer [$instance_ read_url $fileName] uplevel eval $buffer } else { uplevel source.orig [list $fileName] } } # # When the Mash interpreter encounters "import ", it will # source the code for the supplied object(s). # # If import is explicitly called while we are configured to autoimport_, # sorry, but we're gonna ignore that and wait for the class to be used before # we import it. On the other hand, if we are not configured to autoimport_, # sure we'll import it for you right now. # proc import args { if { ![catch "Import set autoimport_"] && ![Import set autoimport_] } { if [catch "really_import $args" error_msg] { error $error_msg } } } # # The first time this import procedure is called, an Import object is created # and the importTables are read to create a mapping from objects to the # files in which their class defn and method defns can be found. # proc import args { Import instvar instance_ if ![info exists instance_] { set instance_ [new Import] } if [catch "eval $instance_ import $args" errormsg] { error $errormsg } } # # As long as the import procedure has not yet been invoked, the user is # free to override mappings that may be read from importTables. # proc override_importTable_mapping { object file_list } { Import instvar instance_ if ![info exists instance_] { set instance_ [new Import] } $instance_ override_importTable_mapping $object $file_list } proc import_use_http_cache { {yes 1} } { Import instvar instance_ if ![info exists instance_] { set instance_ [new Import] } $instance_ set use_http_cache_ 1 } tclcl-1.20/tcl-object.tcl0000664000076400007660000002454507140411774014167 0ustar tomhnsnam# # Copyright (c) 1996 Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the MASH Research # Group at the University of California Berkeley. # 4. Neither the name of the University nor of the Research Group may be # used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $Header: /cvsroot/otcl-tclcl/tclcl/tcl-object.tcl,v 1.41 2000/07/28 23:15:08 johnh Exp $ # # # InitObject is an OTcl object that exports "init-vars" to initialize # default variables, and mimic Object's args processing. # Class InitObject # # init-vars: calls init-default-vars to initilize all default variables # then process args the way Object::init does, and return unused args # # This is how it should be used from "init" instproc of split objects # set args [eval $self init-vars $args] # eval $self next $args # Object instproc init-vars {args} { $self init-default-vars [$self info class] # Emulate Object's args processing # 1. Look for pairs of {-cmd val} in args # 2. If "$self $cmd $val" is not valid then put it in $shadow_args set shadow_args "" for {} {$args != ""} {set args [lrange $args 2 end]} { set key [lindex $args 0] set val [lindex $args 1] if {$val != "" && [string match {-[A-z]*} $key]} { set cmd [string range $key 1 end] if ![catch "$self $cmd $val"] { continue } } lappend shadow_args $key $val } return $shadow_args } # # init-all-vars: initializes all default variables for an object # Object instproc init-default-vars {classes} { foreach cl $classes { if {$cl == "Object"} continue # depth first: set vars of ancestors first $self init-default-vars "[$cl info superclass]" foreach var [$cl info vars] { if [catch "$self set $var"] { $self set $var [$cl set $var] } } } } # # A SplitObject is an OTcl object with a C++ shadow object, i.e., an object # whose implementation is split across OTcl and C++. This is the base # class of all such objects. # Class SplitObject SplitObject set id 0 SplitObject instproc init args { $self next if [catch "$self create-shadow $args"] { error "__FAILED_SHADOW_OBJECT_" "" } } # # reimplement set and get in terms of instvar # to handle classinstvars # SplitObject instproc set args { set var [lindex $args 0] $self instvar -parse-part1 $var if {[llength $args] == 1} { return [subst $[subst $var]] } else { return [set $var [lindex $args 1]] } } SplitObject instproc destroy {} { $self delete-shadow $self next } SplitObject proc getid {} { $self instvar id incr id return _o$id } SplitObject proc is-class cl { if [catch "SplitObject info subclass $cl" v] { return 0 } return $v } SplitObject instproc unknown args { if [catch "$self cmd $args" ret] { set cls [$self info class] global errorInfo set savedInfo $errorInfo error "error when calling class $cls: $args" $savedInfo } return $ret } proc new { className args } { set o [SplitObject getid] if [catch "$className create $o $args" msg] { if [string match "__FAILED_SHADOW_OBJECT_" $msg] { # # The shadow object failed to be allocated. # delete $o return "" } global errorInfo error "class $className: constructor failed: $msg" $errorInfo } return $o } proc delete o { $o delete_tkvar $o destroy } # # Register a C++ compiled-in class with OTcl # Arrange things so we catch create and destroy # and manage the underlying C++ object accordingly. # Classes have structured names with the hierarchy # delineated by slashes, e.g., a side effect of # creating class "A/B/C" is to create classes "A" # and "A/B". # This routine invoked by TclClass::bind. # SplitObject proc register className { set classes [split $className /] set parent SplitObject set path "" set sep "" foreach cl $classes { set path $path$sep$cl if ![$self is-class $path] { Class $path -superclass $parent } set sep / set parent $path } } # # warn if a class variable not defined # this is in a separate method so user can nop it # # In ns, this error happens for several possible reasons: # # 1. you bound a variable in C but didn't initialize it in tcl # To fix: put initialization code in tcl/lib/ns-default.tcl # (and make sure that this code ends up compiled into your # version of ns!) # # 2. You bound it in C and think you initialized it in Tcl, # but there's an error in your class hierarchy # (for example, the Tcl hierarchy name given in # the XxxClass declaration in C++ # doesn't match the name used in the Tcl initialization). # # 3. you invoked something which assumed that something else had # been built (for example, doing "new Node" without having # first done "new Simulator") # To fix: do new Simulator (or whatever). # # 4. You created a split object from C++ (with new) # rather than from Tcl. # Nitin Vaidya found this problem # and suggested working around it either by avoiding # binding the variable or invoking tcl to create the object. # See the discussion at # http://www-mash.cs.berkeley.edu/dist/archive/ns-users/9808/ # for more details. # SplitObject instproc warn-instvar item { $self instvar issuedWarning if ![info exists issuedWarning($item)] { set issuedWarning($item) 1 puts stderr "warning: no class variable $item\n" $self instvar SplitObject_issued_undeclared_warning if ![info exists SplitObject_issued_undeclared_warning] { puts stderr "\tsee tcl-object.tcl in tclcl for info about this warning.\n" # (i.e., see the comment 20 lines back) set SplitObject_issued_undeclared_warning 1 } } } # # Initialize a class instance variable from its # parent class' member value. If no such variable, # call the warning method (which can be overridden). # We search the class hierarchy for the variable # until we give up at the SplitObject class. # SplitObject instproc init-instvar var { set cl [$self info class] while { "$cl" != "" && "$cl" != "SplitObject" } { foreach c $cl { if ![catch "$c set $var" val] { $self set $var $val return } } set parents "" foreach c $cl { if { $cl != "SplitObject" && $cl != "Object" } { set parents "$parents [$c info superclass]" } } set cl $parents } $self warn-instvar [$self info class]::$var } proc tkerror msg { global errorInfo puts -nonewline "$msg: " puts $errorInfo exit 1 } # somehow tkerror is *evaluated* as 'bgerror', and put 'tkerror' in # bgerror's body will cause an infinite execution loop... :( proc bgerror msg { global errorInfo puts -nonewline "$msg: " puts $errorInfo exit 1 } # # Method hooks to allow using public/private keywords # instead of instproc to define methods. For now, we # don't actually enforce these semantics. Rather, they # serve only to document the API (and as a hook for # the automatic doc generator). # Object instproc public args { eval $self instproc $args } Object instproc private args { eval $self instproc $args } Object instproc proc.public args { eval $self proc $args } Object instproc proc.private args { eval $self proc $args } Object instproc proc.invoke { arglist body args } { $self proc invokeproc_ $arglist $body eval [list $self] invokeproc_ $args } #tkvar stuff Object instproc tkvar args { foreach var $args { if { [llength $var] > 1 } { set varname [lindex $var 1] set var [lindex $var 0] } else { set varname $var } uplevel upvar #0 $self/$var $varname } } Object instproc tkvarname var { return $self/$var } Object instproc delete_tkvar { } { set fullname [$self tkvarname foo] regexp "(.*)foo$" $fullname dummy prefix foreach global [info globals "$prefix*"] { global $global unset $global } } Object instproc info_tkvar { pattern } { set pattern [$self tkvarname $pattern] return [info globals $pattern] } # # Backward compat: SplitObjects used to be called TclObjects # proc TclObject args { return [eval SplitObject $args] } # Misc. helpers # # Procedure to order a list of SplitObject's. # # use as: "lsort -command SplitObjectCompare {list}" # proc SplitObjectCompare {a b} { set o1 [string range $a 2 end] set o2 [string range $b 2 end] if {$o1 < $o2} { return -1 } elseif {$o1 == $o2} { return 0 } else { return 1 } } Object instproc extract-var varname { set aidx [string first "(" $varname] if { $aidx >= 0 } { string range $varname 0 [incr aidx -1] } else { set varname } } Object instproc add-to-list {list elem} { $self instvar [$self extract-var $list] set ret 0 if ![info exists $list] { set $list $elem set ret 1 } elseif { [lsearch [set $list] $elem] < 0 } { lappend $list $elem set ret 1 } set ret } Object instproc remove-from-list {list elem} { $self instvar [$self extract-var $list] set wtag "$self: remove $elem from $list failed" set ret 0 if ![info exists $list] { warn "$wtag: list does not exist" } else { set k [lsearch [set $list] $elem] if { $k < 0 } { warn "$wtag: element does not exist" } else { set $list [lreplace [set $list] $k $k] set ret 1 } } set ret } tclcl-1.20/Tcl.cc0000664000076400007660000007773310561235403012467 0ustar tomhnsnam/* * Copyright (c) 1993-1995 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef lint static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/Tcl.cc,v 1.76 2007/02/04 01:46:43 tom_henderson Exp $ (LBL)"; #endif #include "config.h" #include #include #include #include #include #include #include "tclcl.h" #include "tclcl-config.h" #include "tclcl-internal.h" #include #include #include "tracedvar.h" /* WIN32: Moved tk.h to a point after tclcl.h since tclcl.h includes * windows.h which grumbles if I load tk.h before it */ #ifndef NO_TK #include #endif #define MAX_CODE_TO_DUMP (8*1024) class InstVar { protected: InstVar(const char* name); public: virtual ~InstVar(); InstVar* next_; virtual void set(const char*) = 0; virtual const char* snget(char *wrk, int wrklen) = 0; void init(const char* var); inline const char* name() { return name_; } inline TracedVar* tracedvar() { return tracedvar_; } inline void tracedvar(TracedVar* v) { tracedvar_ = v; } static double time_atof(const char* s); static double bw_atof(const char* s); private: static char* catch_var(ClientData, Tcl_Interp* tcl, CONST84 char* name1, CONST84 char* name2, int flags); protected: void catch_read(const char* name1, const char* name2); void catch_write(const char* name1, const char* name2); void catch_destroy(const char* name1, const char* name2); const char* name_; TracedVar* tracedvar_; }; #define WRK_SMALL_SIZE 32 #define WRK_MEDIUM_SIZE 256 class TracedVarTcl : public TracedVar { public: TracedVarTcl(const char* name); virtual ~TracedVarTcl(); virtual char* value(char* buf, int buflen); private: static char* catch_var(ClientData, Tcl_Interp* tcl, CONST84 char* name1, CONST84 char* name2, int flags); protected: void catch_write(const char* name1, const char*); void catch_destroy(const char* name1, const char*); CONST84 char* value_; }; Tcl Tcl::instance_; Tcl::Tcl() : tcl_(0), tkmain_(0), application_(0) { Tcl_InitHashTable(&objs_, TCL_STRING_KEYS); bp_ = buffer_; } void Tcl::init(const char* application) { init(Tcl_CreateInterp(), application); } extern EmbeddedTcl et_tclobject; void Tcl::init(Tcl_Interp* tcl, const char* application) { instance_.tcl_ = tcl; instance_.application_ = application; et_tclobject.load(); TclClass::init(); } TclObject* Tcl::lookup(const char* name) { /*XXX use tcl hash table */ Tcl_HashEntry* he = Tcl_FindHashEntry(&objs_, (char*)name); if (he != 0) return ((TclObject*)Tcl_GetHashValue(he)); return (0); } void Tcl::enter(TclObject* o) { int nw; Tcl_HashEntry* he = Tcl_CreateHashEntry(&objs_, (char*)o->name(), (int*)&nw); Tcl_SetHashValue(he, (char*)o); } void Tcl::remove(TclObject* o) { Tcl_HashEntry* he = Tcl_FindHashEntry(&objs_, (char*)o->name()); if (he == 0) abort(); Tcl_DeleteHashEntry(he); } void Tcl::evalc(const char* s) { unsigned int n = strlen(s) + 1; if (n < sizeof(buffer_) - (bp_ - buffer_)) { char* const p = bp_; bp_ += n; strcpy(p, s); eval(p); bp_ = p; } else { char* p = new char[n + 1]; strcpy(p, s); eval(p); delete[] p; } } void Tcl::eval(char* s) { int st = Tcl_GlobalEval(tcl_, s); if (st != TCL_OK) { int n = strlen(application_) + strlen(s); if (n > MAX_CODE_TO_DUMP) { s = "\n[code omitted because of length]\n"; n = strlen(application_) + strlen(s); }; char* wrk = new char[n + 80]; sprintf(wrk, "tkerror {%s: %s}", application_, s); if (Tcl_GlobalEval(tcl_, wrk) != TCL_OK) { fprintf(stderr, "%s: tcl error on eval of: %s\n", application_, s); exit(1); } delete[] wrk; //exit(1); } } void Tcl::eval() { char* p = bp_; bp_ = p + strlen(p) + 1; /*XXX*/ if (bp_ >= &buffer_[1024]) { fprintf(stderr, "bailing in Tcl::eval\n"); assert(0); exit(1); } eval(p); bp_ = p; } void Tcl::error(const char* s) { if (strlen(s) > MAX_CODE_TO_DUMP) { s = "\n[code omitted because of length]\n"; }; fprintf(stderr, "%s: \"%s\": %s\n", application_, s, tcl_->result); exit(1); } /*XXX should be driven from tcl not C...*/ #ifdef notdef void Tcl::add_option(const char* name, const char* value) { bp_[0] = toupper(application_[0]); sprintf(&bp_[1], "%s.%s", application_ + 1, name); Tk_AddOption(tkmain_, bp_, (char*)value, TK_USER_DEFAULT_PRIO + 1); } void Tcl::add_default(const char* name, const char* value) { bp_[0] = toupper(application_[0]); sprintf(&bp_[1], "%s.%s", application_ + 1, name); Tk_AddOption(tkmain_, bp_, (char*)value, TK_STARTUP_FILE_PRIO + 1); } const char* Tcl::attr(const char* attr) const { bp_[0] = toupper(application_[0]); strcpy(&bp_[1], application_ + 1); const char* cp = Tk_GetOption(tkmain_, (char*)attr, bp_); if (cp != 0 && *cp == 0) cp = 0; return (cp); } #endif TclObject::TclObject() : instvar_(0), tracedvar_(0) { #if 0 name_[0] = 0; #else /* ! 0 */ name_ = NULL; #endif /* 0 */ } TclObject::~TclObject() { delete[] name_; } int TclObject::dispatch_static_proc(ClientData clientData, Tcl_Interp * /*interp*/, int argc, char *argv[]) { int (*proc)(int argc, const char * const *argv); proc = (int (*) (int, const char * const *)) clientData; return ((*proc)(argc - 2, argv + 2)); } void TclObject::insert(InstVar* p) { p->next_ = instvar_; instvar_ = p; } void TclObject::insert(TracedVar* var) { var->owner(this); var->next_ = tracedvar_; tracedvar_ = var; } #ifdef notdef int TclObject::callback(ClientData cd, Tcl_Interp*, int ac, char** av) { TclObject* tc = (TclObject*)cd; return (tc->command(ac, (const char*const*)av)); } #endif void TclObject::name(const char* s) { #if 0 // if TCLCL_NAME_LEN we should allow 10^10-1 (almost a billion) objects if (strlen(s) >= TCLCL_NAME_LEN) abort(); strcpy(name_, s); #else /* ! 0 */ delete[] name_; name_ = new char[strlen(s) + 1]; strcpy(name_, s); #endif /* 0 */ } int TclObject::command(int argc, const char*const* argv) { #ifdef notdef Tcl& t = Tcl::instance(); char* cp = t.buffer(); sprintf(cp, "%s: ", t.application()); cp += strlen(cp); const char* cmd = argv[0]; if (cmd[0] == '_' && cmd[1] == 'o' && class_name_ != 0) sprintf(cp, "\"%s\" (%s): ", class_name_, cmd); else sprintf(cp, "%s: ", cmd); cp += strlen(cp); if (argc >= 2) sprintf(cp, "no such method (%s)", argv[1]); else sprintf(cp, "requires additional args"); t.result(t.buffer()); #endif if (argc > 2) { if (strcmp(argv[1], "trace") == 0) { TclObject* tracer = this; if (argc > 3) tracer = TclObject::lookup(argv[3]); return traceVar(argv[2], tracer); } } return (TCL_ERROR); } void TclObject::create_instvar(const char* var) { /* * XXX can't use tcl.evalf() because it uses Tcl_GlobalEval * and we need to run in the context of the method. */ char wrk[256]; sprintf(wrk, "$self instvar %s", var); Tcl_Eval(Tcl::instance().interp(), wrk); } int TclObject::create_framevar(const char *localName) { /* * XXX can't use tcl.evalf() because it uses Tcl_GlobalEval * and we need to run in the context of the method. * * XXX Should add a check to see if we already have this framevar. * If so, don't do the following set stuff, otherwise it'll change * the correct value to 0. */ Tcl_Interp* tcl = Tcl::instance().interp(); CONST84 char *v = (char *) Tcl_GetVar(tcl, (CONST84 char*)localName, 0); if (v != 0) return (TCL_OK); char wrk[WRK_MEDIUM_SIZE]; if (-1 == snprintf(wrk, WRK_MEDIUM_SIZE, "set %s 0", localName)) return TCL_ERROR; return Tcl_Eval(Tcl::instance().interp(), wrk); } // Enumerating through all traced variables, but still use the trace() // callback. int TclObject::enum_tracedVars() { for (InstVar* p = instvar_; p != 0; p = p->next_) { if (p->tracedvar() && p->tracedvar()->tracer()) p->tracedvar()->tracer()->trace(p->tracedvar()); } TracedVar* var = tracedvar_; for ( ; var != 0; var = var->next_) if (var->tracer()) var->tracer()->trace(var); return TCL_OK; } int TclObject::traceVar(const char* varName, TclObject* tracer) { // first check for delay-bound variables int e = delay_bind_dispatch(varName, varName, tracer); if (e == TCL_OK) // was delay-bound and is now taken care of return e; // now handle regular bound variables for (InstVar* p = instvar_; p != 0; p = p->next_) { if (strcmp(p->name(), varName) == 0) { if (p->tracedvar()) { p->tracedvar()->tracer(tracer); tracer->trace(p->tracedvar()); return TCL_OK; } Tcl& tcl = Tcl::instance(); tcl.resultf("trace: %s is not a TracedVar", varName); return TCL_ERROR; } } TracedVar* var = tracedvar_; for ( ; var != 0; var = var->next_) { if (strcmp(var->name(), varName) == 0) { var->tracer(tracer); tracer->trace(var); return TCL_OK; } } // XXX Introduce the var into OTcl scope before tracing it OTclObject *otcl_object = OTclGetObject(Tcl::instance().interp(), name_); int result = OTclOInstVarOne(otcl_object, Tcl::instance().interp(), "1", (char *)varName, (char *)varName, 0); if (result == TCL_OK) { var = new TracedVarTcl(varName); insert(var); var->tracer(tracer); tracer->trace(var); } return result; } void TclObject::trace(TracedVar*) { fprintf(stderr, "SplitObject::trace called in the base class of %s\n", name_); } void TclObject::msg_abort(const char *fmt, ...) { if (fmt != NULL) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); } ::abort(); } TclClass* TclClass::all_; TclClass::TclClass(const char* classname) : class_(0), classname_(classname) { if (Tcl::instance().interp()!=NULL) { // the interpreter already exists! // this can happen only (?) if the class is created as part // of a dynamic library bind(); } else { // the interpreter doesn't yet exist // add this class to a linked list that is traversed when // the interpreter is created next_ = all_; all_ = this; } } TclClass::~TclClass() { TclClass** p = &all_; while (*p != this && *p != NULL) p = &(*p)->next_; if (*p != NULL) { *p = (*p)->next_; } } void TclClass::init() { for (TclClass* p = all_; p != 0; p = p->next_) p->bind(); } int TclClass::dispatch_cmd(ClientData clientData, Tcl_Interp *, int argc, CONST84 char *argv[]) { TclObject* o = (TclObject*)clientData; return (o->command(argc - 3, argv + 3)); } int TclClass::create_shadow(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]) { TclClass* p = (TclClass*)clientData; TclObject* o = p->create(argc, argv); Tcl& tcl = Tcl::instance(); if (o != 0) { o->name(argv[0]); tcl.enter(o); if (o->init(argc - 2, argv + 2) == TCL_ERROR) { tcl.remove(o); delete o; return (TCL_ERROR); } tcl.result(o->name()); OTclAddPMethod(OTclGetObject(interp, argv[0]), "cmd", (Tcl_CmdProc *) dispatch_cmd, (ClientData)o, 0); OTclAddPMethod(OTclGetObject(interp, argv[0]), "instvar", (Tcl_CmdProc *) dispatch_instvar, (ClientData)o, 0); o->delay_bind_init_all(); return (TCL_OK); } else { tcl.resultf("new failed while creating object of class %s", p->classname_); return (TCL_ERROR); } } /* * Sigh. Much of this routine duplicates * OTclOInstVarMethod. I did that rather than * build and eval the appropriate Tcl code to get * the control I wanted over calling my superclass's instvar. */ int TclClass::dispatch_instvar(ClientData /*cd*/, Tcl_Interp* in, int argc, CONST84 char *argv[]) { int i; int result; Tcl& tcl = Tcl::instance(); // XXX: // There seems to be something silly about these next two lines. // Maybe a TclObject should have a method to return the OTclObject? OTclObject *otcl_object = OTclGetObject(in, argv[0]); TclObject* tcl_object = tcl.lookup(argv[0]); int need_parse = 0; for (i = 4; i < argc; i++) { int ac; CONST84 char **av; CONST84 char *varName, *localName; if (strcmp(argv[i], "-parse-part1") == 0) { need_parse = 1; continue; }; result = Tcl_SplitList(in, argv[i], &ac, (const char ***) &av); if (result != TCL_OK) break; if (ac == 1) { varName = localName = av[0]; } else if (ac == 2) { varName = av[0]; localName = av[1]; } else { Tcl_ResetResult(in); Tcl_AppendResult(in, "expected ?inst/local? or ?inst? ?local? but got ", argv[i]); ckfree((char*)av); result = TCL_ERROR; break; }; // handle arrays in instvars if -parse-part1 was specified. if (need_parse) { const char *p = strchr (localName, '('); if (p) ((char*) localName)[p-localName] = '\0'; }; if (TCL_OK != (result = tcl_object->delay_bind_dispatch(varName, localName, NULL))) result = OTclOInstVarOne(otcl_object, in, "1", varName, localName, 0); ckfree((char*)av); } return result; } int TclClass::delete_shadow(ClientData, Tcl_Interp*, int argc, CONST84 char *argv[]) { Tcl& tcl = Tcl::instance(); if (argc != 4) { tcl.result("XXX delete-shadow"); return (TCL_ERROR); } TclObject* o = tcl.lookup(argv[0]); /* * Delete shadow if it exists. Shadow might not exist * because of error condition in constructor. */ if (o != 0) { tcl.remove(o); delete o; } return (TCL_OK); } void TclClass::bind() { Tcl& tcl = Tcl::instance(); tcl.evalf("SplitObject register %s", classname_); class_ = OTclGetClass(tcl.interp(), (char*)classname_); OTclAddIMethod(class_, "create-shadow", (Tcl_CmdProc *) create_shadow, (ClientData)this, 0); OTclAddIMethod(class_, "delete-shadow", (Tcl_CmdProc *) delete_shadow, (ClientData)this, 0); otcl_mappings(); } int TclClass::method(int, const char*const*) { /*XXX*/ return (TCL_ERROR); } void TclClass::add_method(const char* name) { OTclAddPMethod((OTclObject*)class_, (char*)name, (Tcl_CmdProc *) dispatch_method, (ClientData)this, 0); } int TclClass::dispatch_method(ClientData cd, Tcl_Interp*, int ac, CONST84 char** av) { TclClass* tc = (TclClass*)cd; return (tc->method(ac, (const char*const*)av)); } void EmbeddedTcl::load() { Tcl::instance().evalc(code_); } int EmbeddedTcl::load(Tcl_Interp* interp) { return Tcl_Eval(interp, (char*)code_); } TclCommand::TclCommand(const char* cmd) : name_(cmd) { Tcl::instance().CreateCommand(cmd, (Tcl_CmdProc *) dispatch_cmd, (ClientData)this, 0); } TclCommand::~TclCommand() { Tcl::instance().DeleteCommand(name_); } int TclCommand::dispatch_cmd(ClientData clientData, Tcl_Interp*, int argc, CONST84 char *argv[]) { TclCommand* o = (TclCommand*)clientData; return (o->command(argc, argv)); } TracedVarTcl::TracedVarTcl(const char* name) : TracedVar(), value_(0) { char* s = new char[strlen(name) + 1]; strcpy(s, name); name_ = s; Tcl& tcl = Tcl::instance(); Tcl_TraceVar(tcl.interp(), (char*)name, TCL_TRACE_WRITES|TCL_TRACE_UNSETS, (Tcl_VarTraceProc *) catch_var, (ClientData)this); } TracedVarTcl::~TracedVarTcl() { delete[] (char*)name_; } char* TracedVarTcl::value(char* buf, int buflen) { if (buf) { if (value_ != NULL) strncpy(buf, value_, buflen); else buf[0] = 0; } return buf; } void TracedVarTcl::catch_write(const char* name1, const char*) { if (tracer() == 0) return; Tcl_Interp* tcl = Tcl::instance().interp(); value_ = (char *) Tcl_GetVar(tcl, (CONST84 char*)name1, 0); if (value_ != 0) tracer()->trace(this); } void TracedVarTcl::catch_destroy(const char* /*name1*/, const char*) { delete this; } char* TracedVarTcl::catch_var(ClientData clientData, Tcl_Interp*, CONST84 char* name1, CONST84 char* name2, int flags) { TracedVarTcl* p = (TracedVarTcl*)clientData; if (flags & TCL_TRACE_WRITES) p->catch_write(name1, name2); else if ((flags & TCL_TRACE_UNSETS) && (flags & TCL_TRACE_DESTROYED)) p->catch_destroy(name1, name2); return (0); } /*XXX should be easy to extend to arrays*/ char* InstVar::catch_var(ClientData clientData, Tcl_Interp*, CONST84 char* name1, CONST84 char* name2, int flags) { InstVar* p = (InstVar*)clientData; if (flags & TCL_TRACE_WRITES) p->catch_write(name1, name2); else if (flags & TCL_TRACE_READS) p->catch_read(name1, name2); else if ((flags & TCL_TRACE_UNSETS) && (flags & TCL_TRACE_DESTROYED)) p->catch_destroy(name1, name2); return (0); } void InstVar::catch_read(const char* name1, const char* name2) { char wrk[WRK_SMALL_SIZE]; Tcl_Interp* tcl = Tcl::instance().interp(); // tcl will copy the value out of wrk (void)Tcl_SetVar2(tcl, (char*)name1, (char*)name2, (char*)snget(wrk, WRK_SMALL_SIZE), 0); } void InstVar::catch_write(const char* name1, const char*) { Tcl_Interp* tcl = Tcl::instance().interp(); const char* v = (char *) Tcl_GetVar(tcl, (CONST84 char*)name1, 0); if (v != 0) set(v); } /* * catch_destroy only gets called for instvars allocated on the stack * (classinstvars). Regular instvars are deallocated by TclObject. * Gee, I hope there's not a race there. */ void InstVar::catch_destroy(const char* /*name1*/, const char*) { delete this; } InstVar::InstVar(const char* name) : name_(name), tracedvar_(0) { Tcl& tcl = Tcl::instance(); Tcl_TraceVar(tcl.interp(), (CONST84 char*)name, TCL_TRACE_READS|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, (Tcl_VarTraceProc *) catch_var, (ClientData)this); } InstVar::~InstVar() { /*XXX do an untrace?*/ } /* * Initialize the instance variable to the value stored in its class; * this way we can easily create defaults for each instance * variable that used by C. We call this routine after the * trace is set up so that the trace is invoked and the * C variable is initialized. */ void InstVar::init(const char* var) { char wrk[256]; sprintf(wrk, "$self init-instvar %s", var); if (Tcl_Eval(Tcl::instance().interp(), wrk) != TCL_OK) { /*XXX can only happy if TclObject::init-instvar broken */ Tcl::instance().evalf("puts stderr \"init-instvar: $errorInfo\""); exit(1); } } class InstVarTclObject : public InstVar { public: InstVarTclObject(const char* name, TclObject** val) : InstVar(name), val_(val) {} const char* snget(char *wrk, int wrklen) { if (-1 == snprintf(wrk, wrklen, "%s", (*val_)->name())) abort(); return (wrk); } void set(const char* s) { *val_ = TclObject::lookup(s); } protected: TclObject** val_; }; class InstVarReal : public InstVar { public: InstVarReal(const char* name, double* val) : InstVar(name), val_(val) {} const char* snget(char *wrk, int wrklen) { if (-1 == snprintf(wrk, wrklen, "%.17g", *val_)) abort(); return (wrk); } void set(const char* s) { *val_ = atof(s); } protected: double* val_; }; class InstVarBandwidth : public InstVarReal { public: InstVarBandwidth(const char* name, double* val) : InstVarReal(name, val) { } void set(const char* s) { *val_ = bw_atof(s); } }; class InstVarTime : public InstVarReal { public: InstVarTime(const char* name, double* val) : InstVarReal(name, val) { } void set(const char* s) { *val_ = time_atof(s); } }; class InstVarInt : public InstVar { public: InstVarInt(const char* name, int* val) : InstVar(name), val_(val) {} const char* snget(char *wrk, int wrklen) { if (-1 == snprintf(wrk, wrklen, "%d", *val_)) abort(); return (wrk); } void set(const char* s) { *val_ = strtol(s, (char**)0, 0); } protected: int* val_; }; class InstVarUInt : public InstVar { public: InstVarUInt(const char* name, unsigned int* val) : InstVar(name), val_(val) {} const char* snget(char *wrk, int wrklen) { if (-1 == snprintf(wrk, wrklen, "%u", *val_)) abort(); return (wrk); } void set(const char* s) { *val_ = strtoul(s, (char**)0, 0); } protected: unsigned int* val_; }; #if defined(HAVE_INT64) class InstVarInt64 : public InstVar { public: InstVarInt64(const char* name, int64_t* val) : InstVar(name), val_(val) {} const char* snget(char *wrk, int wrklen) { if (-1 == snprintf(wrk, wrklen, STRTOI64_FMTSTR, *val_)) abort(); return (wrk); } void set(const char* s) { *val_ = STRTOI64(s, (char**)0, 0); } protected: int64_t* val_; }; #endif class InstVarBool : public InstVarInt { public: InstVarBool(const char* var, int* val) : InstVarInt(var, val) {} void set(const char* s) { int v; if (isdigit(*s)) v = atoi(s); else switch (*s) { case 't': case 'T': v = 1; break; default: v = 0; break; } *val_ = v; } }; class InstVarError : public InstVar { public: InstVarError(const char* name, const char* errmsg) : InstVar(name), errmsg_(errmsg) {} const char* snget(char *wrk, int wrklen) { fprintf(stderr, "\nERROR: %s\n\n", errmsg_); abort(); // To make MSVC happy return NULL; } void set(const char* s) { fprintf(stderr, "\nERROR: %s\n\n", errmsg_); abort(); } protected: const char* errmsg_; }; class InstVarTracedInt : public InstVar { public: InstVarTracedInt(const char* name, TracedInt* val) : InstVar(name), val_(val) { tracedvar(val); } const char* snget(char *wrk, int wrklen) { return (val_->value(wrk, wrklen)); } void set(const char* s) { *val_ = strtol(s, (char**)0, 0); } protected: TracedInt* val_; }; class InstVarTracedReal : public InstVar { public: InstVarTracedReal(const char* name, TracedDouble* val) : InstVar(name), val_(val) { tracedvar(val); } const char* snget(char *wrk, int wrklen) { return (val_->value(wrk, wrklen)); } void set(const char* s) { *val_ = atof(s); } protected: TracedDouble* val_; }; double InstVar::bw_atof(const char* s) { char wrk[32]; char* cp = wrk; while (isdigit(*s) || *s == 'e' || *s == '+' || *s == '-' || *s == '.') *cp++ = *s++; *cp = 0; double v = atof(wrk); switch (s[0]) { case 'k': case 'K': v *= 1e3; break; case 'm': case 'M': v *= 1e6; break; case 'g': case 'G': v *= 1e9; break; case 't': case 'T': v *= 1e12; break; case 'p': case 'P': v *= 1e15; break; } if (s[0] != 0 && s[1] == 'B') v *= 8; return (v); } double InstVar::time_atof(const char* s) { char wrk[32]; char* cp = wrk; while (isdigit(*s) || *s == 'e' || *s == '+' || *s == '-' || *s == '.') *cp++ = *s++; *cp = 0; double v = atof(wrk); switch (*s) { case 'm': v *= 1e-3; break; case 'u': v *= 1e-6; break; case 'n': v *= 1e-9; break; case 'p': v *= 1e-12; break; } return (v); } void TclObject::init(InstVar* v, const char* var) { insert(v); v->init(var); } #define TOB(FUNCTION, C_TYPE, INSTVAR_TYPE, OTHER_STUFF) \ void TclObject::FUNCTION(const char* var, C_TYPE* val) \ { \ create_instvar(var); \ OTHER_STUFF; \ init(new INSTVAR_TYPE(var, val), var); \ } TOB(bind, double, InstVarReal, ;) TOB(bind_bw, double, InstVarBandwidth, ;) TOB(bind_time, double, InstVarTime, ;) TOB(bind, int, InstVarInt, ;) TOB(bind, unsigned int, InstVarUInt, ;) TOB(bind_bool, int, InstVarBool, ;) TOB(bind, TclObject*, InstVarTclObject, ;) TOB(bind, TracedInt, InstVarTracedInt, val->name(var); val->owner(this);) TOB(bind, TracedDouble, InstVarTracedReal, val->name(var); val->owner(this);) void TclObject::bind_error(const char* name, const char* errmsg) { create_instvar(name); insert(new InstVarError(name, errmsg)); } #if defined(HAVE_INT64) TOB(bind, int64_t, InstVarInt64, ) #endif int TclObject::delay_bind_dispatch(const char* /*varName*/, const char* /*localName*/, TclObject * /*tracer*/) { return TCL_ERROR; // terminate search } void TclObject::delay_bind_init_all() { } /* * sigh... I'd like to call both these functions delay_bind_init, * but gcc 2.7.2.3 apparently isn't * distinguishing the two based on signature. */ void TclObject::delay_bind_init_one(const char *varName) { char wrk[WRK_MEDIUM_SIZE]; if (-1 == snprintf(wrk, WRK_MEDIUM_SIZE, "$self init-instvar %s", varName)) abort(); if (Tcl_Eval(Tcl::instance().interp(), wrk) != TCL_OK) abort(); } void TclObject::not_a_TracedVar(const char *varName) { fprintf(stderr, "TclObject: %s is not a TracedVar.\n", varName); abort(); } void TclObject::handle_TracedVar(const char *name, TracedVar *val, TclObject *tracer) { /* * Remember what the variable is called. * We assume name is a pointer to static storage * and so won't free it. */ val->name(name); // It's not clear that owner is ever used, but we set it anyway // for compability. val->owner(this); // hook the traced var into the tracing system val->tracer(tracer); tracer->trace(val); } /* * Traced vars and delay_binding: * * Without delay-binding, tracevars end up linked into * the object's instvar_ and tracedvar_ chains as part of bind(). * This info is then used in two places: * - TclObject::enum_tracedVars (to list them all) * - TclObject::traceVar (to see if a given thing we're trying to trace * shoud be, called from TclObject::command's "trace" cmd * * With delay binding this approach doesn't work, since we don't * have InstVar structures in existance at all times. (This is good--- * it saves memory.) Instead, we call delay_bind_dispatch() to * search the object hierarchy for a delay-bound variable when a script * does "instvar foo_". This is the only way to search the hierarchy, * so we make it also work the trace command. * * (Design aside: it would be more elegant to put all the class * variables (i.e., the delay_bound ones) in a class-wide hash and do * a quick lookup on them through the hash table, like what happens * for objects. Unfortuantely, we can't do this, primarily because we * need offsets into objects (like in Xt), but C++ doesn't allow void * O::* pointers just typed O::*'s, and C++ O::* pointers are REALLY * ugly because they have to handle * multiple inheritance.) * * * There's probably a better way to do this with templates * (but we don't allow templates currently for portability). * * TclObject::delay_bind returns a boolean if it was handled our not * see ~ns-2/agent.cc for an example of how to use delay_bind_init_all * and delay_bind_dispatch. */ #define TODB(FUNCTION, C_TYPE, INSTVAR_TYPE, TRACEDVAR_CODE) \ bool \ TclObject:: FUNCTION (const char* varName, const char* localName, \ const char* thisVarName, \ C_TYPE *val, TclObject *tracer) \ { \ if (strcmp(varName, thisVarName) != 0) return false; \ if (tracer) { \ /* traced var request */ \ TRACEDVAR_CODE; \ } else { \ /* just a binding */ \ if (TCL_OK != create_framevar(localName)) abort(); \ (void) (new INSTVAR_TYPE (localName, val)); \ }; \ return true; \ } // These macros are quite ugly in that they the xxx_TracedVars // reference params of the function above... TODB(delay_bind, double, InstVarReal, not_a_TracedVar(thisVarName)) TODB(delay_bind_bw, double, InstVarBandwidth, not_a_TracedVar(thisVarName)) TODB(delay_bind_time, double, InstVarTime, not_a_TracedVar(thisVarName)) TODB(delay_bind, int, InstVarInt, not_a_TracedVar(thisVarName)) TODB(delay_bind, unsigned int, InstVarUInt, not_a_TracedVar(thisVarName)) TODB(delay_bind_bool, int, InstVarBool, not_a_TracedVar(thisVarName)) TODB(delay_bind, TracedInt, InstVarTracedInt, handle_TracedVar(thisVarName,val,tracer)) TODB(delay_bind, TracedDouble, InstVarTracedReal, handle_TracedVar(thisVarName,val,tracer)) #if defined(HAVE_INT64) TODB(delay_bind, int64_t, InstVarInt64, not_a_TracedVar(thisVarName)) #endif TclObject * TclObject::New(const char *className, const char * arg1, ...) { Tcl_DString buf; const char *string; Tcl &tcl = Tcl::instance(); int result; va_list ap; va_start(ap, arg1); Tcl_DStringInit(&buf); Tcl_DStringAppendElement(&buf, "new"); Tcl_DStringAppendElement(&buf, (char*)className); string = arg1; while (string!=NULL) { Tcl_DStringAppendElement(&buf, (char*)string); string = va_arg(ap, const char *); } va_end(ap); result = Tcl_Eval(tcl.interp(), Tcl_DStringValue(&buf)); Tcl_DStringFree(&buf); if (result==TCL_ERROR) { return NULL; } else { return tcl.lookup(tcl.result()); } } int TclObject::Delete(TclObject *object) { Tcl &tcl = Tcl::instance(); if (object->name()==NULL) { // this object does not have a corresponding OTcl object delete object; tcl.result(""); return TCL_OK; } return Tcl_VarEval(tcl.interp(), "delete ", object->name(), NULL); } int TclObject::Invoke(const char *method, ...) { Tcl_DString buf; const char *string; Tcl &tcl = Tcl::instance(); int result; va_list ap; if (name()==NULL) { // this object does not have a corresponding OTcl object tcl.result("no otcl object associated with C++ TclObject"); tcl.add_error("\ninvoked from withing TclObject::invoke()"); return TCL_ERROR; } va_start(ap, method); Tcl_DStringInit(&buf); Tcl_DStringAppendElement(&buf, (char*) name()); Tcl_DStringAppendElement(&buf, (char*) method); while ( (string = va_arg(ap, const char *))!=NULL ) { Tcl_DStringAppendElement(&buf, (char*) string); } va_end(ap); result = Tcl_Eval(tcl.interp(), Tcl_DStringValue(&buf)); Tcl_DStringFree(&buf); return result; } int TclObject::Invokef(const char *format, ...) { static char buffer[1024]; /* XXX: individual command should not be * larger than 1023 */ sprintf(buffer, "%s ", name()); va_list ap; va_start(ap, format); vsprintf(&buffer[strlen(buffer)], format, ap); return Tcl_Eval(Tcl::instance().interp(), buffer); } int TclArguments::next(const char *&arg) { if (!more_args()) { Tcl::instance().result("too few arguments"); add_error(); return TCL_ERROR; } arg = argv_[current_++]; if (arg==NULL) { Tcl::instance().result("null argument"); add_error(); return TCL_ERROR; } return TCL_OK; } void TclArguments::add_error() const { Tcl::instance().add_errorf("\ninvoked from within '%s %s'", argv_[0], argv_[1]); } int TclArguments::arg(int &value) { Tcl &tcl = Tcl::instance(); const char *arg; if (next(arg)==TCL_ERROR) { return TCL_ERROR; } if (Tcl_GetInt(tcl.interp(), (char*)arg, &value)==TCL_ERROR) { add_error(); return TCL_ERROR; } return TCL_OK; } int TclArguments::arg(unsigned int &value) { int iValue; if (arg(iValue)==TCL_ERROR) return TCL_ERROR; value = (unsigned int) iValue; return TCL_OK; } int TclArguments::arg(unsigned short &value) { int iValue; if (arg(iValue)==TCL_ERROR) return TCL_ERROR; value = (unsigned short) iValue; return TCL_OK; } int TclArguments::arg(double &value) { Tcl &tcl = Tcl::instance(); const char *arg; if (next(arg)==TCL_ERROR) { return TCL_ERROR; } if (Tcl_GetDouble(tcl.interp(), (char*) arg, &value)==TCL_ERROR) { add_error(); return TCL_ERROR; } return TCL_OK; } int TclArguments::arg(TclObject *&value) { Tcl &tcl = Tcl::instance(); const char *arg; if (next(arg)==TCL_ERROR) { return TCL_ERROR; } value = tcl.lookup(arg); if (value==NULL) { tcl.resultf("Invalid object name '%s'", arg); add_error(); return TCL_ERROR; } return TCL_OK; } int TclArguments::arg(const char *&value) { if (next(value)==TCL_ERROR) { return TCL_ERROR; } return TCL_OK; } tclcl-1.20/Tcl2.cc0000664000076400007660000000614210305457475012546 0ustar tomhnsnam/* * Copyright (c) 1993 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef lint static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/Tcl2.cc,v 1.11 2005/09/01 01:54:05 tom_henderson Exp $ (LBL)"; #endif #include #include "tclcl.h" #include "tclcl-internal.h" #ifndef HAVE_SNPRINTF /* * This implementation maps overflow into a hard failure. */ int snprintf(char *buf, int size, const char *fmt, ...) { va_list ap; va_start(ap, fmt); #ifdef NEED_SUNOS_PROTOS /* * XXX SunOS4's vsprintf returns a char*!!! */ char *n; n = vsprintf(buf, fmt, ap); if (strlen(n) >= size) abort(); return strlen(n); #else int n; n = vsprintf(buf, fmt, ap); if (n >= size) abort(); return n; #endif } #endif /* HAVE_SNPRINTF */ /* * Put this routine in a separate module so we can compile * it without optimzation to get around a bug in DEC OSF's C++ * compiler. */ void Tcl::evalf(const char* fmt, ...) { va_list ap; va_start(ap, fmt); vsprintf(bp_, fmt, ap); eval(); } void Tcl::resultf(const char* fmt, ...) { va_list ap; va_start(ap, fmt); vsprintf(bp_, fmt, ap); tcl_->result = bp_; } void Tcl::add_errorf(const char* fmt, ...) { static char buffer[1024]; /* XXX: individual error lines should not be * larger than 1023 */ va_list ap; va_start(ap, fmt); vsprintf(buffer, fmt, ap); add_error(buffer); } tclcl-1.20/tcl2c++.c0000664000076400007660000001123110307471137012720 0ustar tomhnsnam/* Netvideo version 3.1 Written by Ron Frederick Simple hack to translate a Tcl/Tk init file into a C string. */ /* * Copyright (c) Xerox Corporation 1992. All rights reserved. * * License is granted to copy, to use, and to make and to use derivative * works for research and evaluation purposes, provided that Xerox is * acknowledged in all documentation pertaining to any such copy or derivative * work. Xerox grants no other licenses expressed or implied. The Xerox trade * name should not be used in any advertising without its written permission. * * XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE * MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE * FOR ANY PARTICULAR PURPOSE. The software is provided "as is" without * express or implied warranty of any kind. * * These notices must be retained in any copies of any part of this software. */ #include #include /* strcasecmp() */ #include #include /* * Define TCL2C_INT if your compiler has problems with long strings. */ #if defined(WIN32) || defined(_WIN32) || defined(__alpha__) || defined(__hpux) || defined( __APPLE__ ) #define TCL2C_INT #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /*XXX*/ void put(int c) { #ifdef TCL2C_INT static int n; if ((++n % 20) == 0) printf("%u,\n", c); else printf("%u,", c); /* printf("%u,%c", c, ((++n & 0xf) == 0) ? '\n' : ' '); */ #else switch(c) { case '\\': case '"': putchar('\\'); break; case '\n': printf("\\n\\"); break; default: break; } printf("%c", c); #endif } void onefile(FILE* f, int skip_source) { int nl = 1; int skipping = 0; int c; int look_forward = 0; while (1) { if (!look_forward) c = getc(f); else look_forward = 0; if (c == EOF) /* Done */ break; switch (c) { case ' ': case '\t': case '\f': if (nl || skipping) continue; break; case '#': /* * Some of TK scripts embed XBMs in them. We need * to keep the #define section there. * XXX This is NOT mthread-safe! */ /* * Look ahead, read next 6 chars. If it's #define, * put the whole line; otherwise don't put anything. * * We should put the read chars back, but this doesn't * work on SunOS. So we have to do the trick below :( */ if (nl) { look_forward = 1; if ((c = getc(f)) != 'd') goto next; if ((c = getc(f)) != 'e') goto next; if ((c = getc(f)) != 'f') goto next; if ((c = getc(f)) != 'i') goto next; if ((c = getc(f)) != 'n') goto next; if ((c = getc(f)) != 'e') goto next; /* Write '#define' and continue */ nl = 0; put('#'); put('d'); put('e'); put('f'); put('i'); put('n'); put('e'); look_forward = 0; continue; } next: if (skipping) continue; if (nl) { skipping = 1; continue; } /* * Since we've looked forward and changed 'c', but we * do need to write a '#', do it here rather than * break and use the put() at the end. */ put('#'); continue; case '\n': if (skipping) { skipping = 0; nl = 1; continue; } nl = 1; break; case '\r': /* If we're reading from stdio, we might see * this (^M). GCC 3.3 doesn't like processing * source containing this character, so strip * it out. */ continue; case '\\': if (skipping) { c = getc(f); continue; } break; case 's': if (skipping) continue; if (nl && skip_source) { /* skip 'source' lines */ const char* targ = "source"; const char* cp = targ + 1; while ((c = getc(f)) == *cp) ++cp; if (*cp == 0) { if (c == ' ' || c == '\t') { skipping = 1; continue; } } for ( ; targ < cp; ++targ) put(*targ); } nl = 0; break; default: nl = 0; if (skipping) continue; break; } put(c); } } int main(int argc, char **argv) { int skip_source; const char* name; if (argc < 2) { fprintf(stderr, "Usage: tcl2c++ name [ file ... ]\n"); exit(1); } #ifdef TCL2C_INT printf("static char code[] = {\n"); #else printf("static char code[] = \""); #endif name = argv[1]; /*XXX tk hack */ skip_source = (strcasecmp(name, "et_tk") == 0) ? 1 : 0; if (argc == 2) onefile(stdin, skip_source); else { for ( ; --argc >= 2; ++argv) { const char* filename = argv[2]; FILE* f = fopen(filename, "r"); if (f == 0) { perror(filename); exit(1); } onefile(f, skip_source); fclose(f); } } #ifdef TCL2C_INT printf("0 };\n"); #else printf("\";\n"); #endif printf("#include \"tclcl.h\"\n"); printf("EmbeddedTcl %s(code);\n", name); return (0); } tclcl-1.20/tclAppInit.cc0000664000076400007660000000614706372425237014016 0ustar tomhnsnam/* * tkAppInit.c -- * * Provides a default version of the Tcl_AppInit procedure for * use in wish and similar Tk-based applications. * * Copyright (c) 1993 The Regents of the University of California. * Copyright (c) 1994 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkAppInit.c 1.21 96/03/26 16:47:07 */ #ifdef notdef #include "tk.h" #endif #include "tclcl.h" extern "C" { #include } /* * The following variable is a special hack that is needed in order for * Sun shared libraries to be used for Tcl. */ extern "C" { extern int matherr(); int *tclDummyMathPtr = (int *) matherr; } extern "C" { /* override the playform init routine in the tk library */ int TkPlatformInit(Tcl_Interp *interp) { extern void TkCreateXEventSource(void); Tcl_SetVar(interp, "tk_library", ".", TCL_GLOBAL_ONLY); return (TCL_OK); } } /* *---------------------------------------------------------------------- * * main -- * * This is the main program for the application. * * Results: * None: Tk_Main never returns here, so this procedure never * returns either. * * Side effects: * Whatever the application does. * *---------------------------------------------------------------------- */ int main(int argc, char** argv) { Tcl_Main(argc, argv, Tcl_AppInit); return 0; /* Needed only to prevent compiler warning. */ } /* *---------------------------------------------------------------------- * * Tcl_AppInit -- * * This procedure performs application-specific initialization. * Most applications, especially those that incorporate additional * packages, will have their own version of this procedure. * * Results: * Returns a standard Tcl completion code, and leaves an error * message in interp->result if an error occurs. * * Side effects: * Depends on the startup script. * *---------------------------------------------------------------------- */ int Tcl_AppInit(Tcl_Interp *interp) { if (Tcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; } /* * Call the init procedures for included packages. Each call should * look like this: * * if (Mod_Init(interp) == TCL_ERROR) { * return TCL_ERROR; * } * * where "Mod" is the name of the module. */ if (Otcl_Init(interp) == TCL_ERROR) return TCL_ERROR; Tcl::init(interp, "xtclsh"); #ifdef notdef EmbeddedTcl::load_Tk(); EmbeddedTcl::define_rate_variable(); EmbeddedTcl::init(); #endif /* * Call Tcl_CreateCommand for application-specific commands, if * they weren't already created by the init procedures called above. */ /* * Specify a user-specific startup file to invoke if the application * is run interactively. Typically the startup file is "~/.apprc" * where "app" is the name of the application. If this line is deleted * then no user-specific startup file will be run under any conditions. */ Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY); return TCL_OK; } tclcl-1.20/tclcl-config.h0000664000076400007660000000146010307471137014137 0ustar tomhnsnam#ifndef TCLCL_CONFIG_H #define TCLCL_CONFIG_H #ifdef WIN32 #include #include typedef unsigned int UINT; #ifndef TIMEZONE_DEFINED_ #define TIMEZONE_DEFINED_ struct timezone { int tz_minuteswest; int tz_dsttime; }; #endif #if defined(__cplusplus) extern "C" { #endif int gettimeofday(struct timeval *tp, struct timezone *tz); void displayErr(const char* prefix); #if defined(__cplusplus) } /* end extern "C" */ #endif #endif /* WIN32 */ // 64-bit integer support #if defined(SIZEOF_LONG) && SIZEOF_LONG >= 8 #define STRTOI64 strtol #define STRTOI64_FMTSTR "%ld" #elif defined(HAVE_STRTOQ) #define STRTOI64 strtoq #define STRTOI64_FMTSTR "%lld" #elif defined(HAVE_STRTOLL) #define STRTOI64 strtoll #define STRTOI64_FMTSTR "%lld" #endif #endif /*TCLCL_CONFIG_H*/ tclcl-1.20/tclcl-internal.h0000664000076400007660000000353210307471137014510 0ustar tomhnsnam /* * Copyright (c) 1999 University of Southern California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, advertising * materials, and other materials related to such distribution and use * acknowledge that the software was developed by the University of * Southern California, Information Sciences Institute. The name of the * University may not be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * */ /* * This finle contains includes used only internally to tclcl. */ #ifndef tclcl_internal_h #define tclcl_internal_h #include "config.h" /* * snprintf can't be in tclcl.h since HAVE_SNPRINTF isn't guaranteed * to be defined properly by whoever includes tclcl.h. :-( */ #ifndef HAVE_SNPRINTF extern "C" { extern int snprintf(char *buf, int size, const char *fmt, ...); } #endif /* * This is a hack to deal with the situation where we build with * Intel's icc on Linux (RH7.2). The autoconf test for strtoq() * succeeds because the symbol is available in glibc, but * has preprocessor controls around the prototype. Replicate the * prototype here so the compiler doesn't protest: */ #if defined(HAVE_STRTOQ) && defined(__linux__) && !defined(__GNUC__) extern "C" { extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base); } #endif #endif tclcl-1.20/tclcl-mappings.h0000664000076400007660000002061607340334322014511 0ustar tomhnsnam/* * Copyright (c) @ Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the MASH Research * Group at the University of California Berkeley. * 4. Neither the name of the University nor of the Research Group may be * used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#) $Header: /cvsroot/otcl-tclcl/tclcl/tclcl-mappings.h,v 1.15 2001/08/21 01:26:42 lloydlim Exp $ */ #ifndef Tclcl_mappings_h #define Tclcl_mappings_h class TclObject; class Tcl; template class TclObjectHelper { protected: typedef int (T::*TMethod)(int argc,const char*const* argv); static int dispatch_(ClientData clientData, Tcl_Interp * /*interp*/, int argc, char *argv[]) { Tcl& tcl = Tcl::instance(); T *o = (T*) tcl.lookup(argv[0]); if (o!=NULL) { TMethod *pMethod = (TMethod*) clientData; return (o->*(*pMethod))(argc-2, argv+2); } tcl.resultf("Could not find TclObject for '%s'", argv[0]); return TCL_ERROR; } }; class TclArguments { public: TclArguments(int argc, const char * const *argv) : current_(2), argc_(argc), argv_(argv) { } ~TclArguments() { } int arg(int &value); int arg(unsigned int &value); int arg(unsigned short &value); int arg(double &value); int arg(const char *&value); int arg(TclObject *&value); inline int more_args() const { return (current_ < argc_); } inline int current() const { return current_; } void add_error() const; private: int next(const char *&arg); int current_, argc_; const char * const *argv_; }; /*-------------------------------------------------------------------------*/ #define DECLARE_OTCLCLASS(classname, otclname) \ \ static class classname ## _Class : public TclClass, \ public TclObjectHelper { \ public: \ typedef TclObjectHelper MyHelper; \ typedef classname MyTclObject; \ \ classname ## _Class() : TclClass(otclname) { } \ TclObject *create(int argc, const char*const* argv); \ void otcl_mappings(); \ } classname ## _class_obj /*-------------------------------------------------------------------------*/ #define DEFINE_ABSTRACT_OTCL_CLASS(classname, otclname) \ DECLARE_OTCLCLASS(classname, otclname); \ \ inline TclObject *classname ## _Class::create(int /*argc*/, \ const char*const* /*argv*/) { \ Tcl::instance().resultf("cannot create object of abstract class " \ "'%s'", classname_); \ return NULL; \ } \ \ void classname ## _Class::otcl_mappings() /*-------------------------------------------------------------------------*/ #define DEFINE_OTCL_CLASS(classname, otclname) \ DECLARE_OTCLCLASS(classname, otclname); \ \ inline TclObject *classname ## _Class::create(int /*argc*/, \ const char*const* /*argv*/) { \ return (new MyTclObject); \ } \ \ void classname ## _Class::otcl_mappings() /*-------------------------------------------------------------------------*/ #define INSTPROC(c_method) \ { \ static MyHelper::TMethod method = &MyTclObject::c_method; \ OTclAddIMethod(class_, #c_method, MyHelper::dispatch_, \ (void*) &method, NULL); \ } #define INSTPROC_PUBLIC(c_method) INSTPROC(c_method) #define INSTPROC_PRIVATE(c_method) INSTPROC(c_method) /*-------------------------------------------------------------------------*/ #define PROC(c_static_method) \ { \ int (*method)(int,const char*const*) = &MyTclObject::c_static_method;\ OTclAddPMethod((OTclObject*)class_, #c_static_method, \ TclObject::dispatch_static_proc, \ (void*) method, NULL); \ } #define PROC_PUBLIC(c_static_method) PROC(c_static_method) #define PROC_PRIVATE(c_static_method) PROC(c_static_method) /*-------------------------------------------------------------------------*/ #define BEGIN_PARSE_ARGS(argc, argv) \ TclArguments _args_(argc, argv) /*-------------------------------------------------------------------------*/ #define END_PARSE_ARGS \ if (_args_.more_args()) { \ Tcl::instance().resultf("Extra arguments (starting at " \ "argument %d)", _args_.current()-1); \ _args_.add_error(); \ return TCL_ERROR; \ } /*-------------------------------------------------------------------------*/ #define ARG(var) \ do { \ if (_args_.arg(var)==TCL_ERROR) { \ return TCL_ERROR; \ } \ } while (0) /*-------------------------------------------------------------------------*/ #define ARG_DEFAULT(var, default) \ do { \ if (!_args_.more_args()) { \ var = default; \ } \ else if (_args_.arg(var)==TCL_ERROR) { \ return TCL_ERROR; \ } \ } while (0) /*-------------------------------------------------------------------------*/ #endif // Tclcl_mappings_h tclcl-1.20/tclcl.h0000664000076400007660000002641210307471137012700 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#) $Header: /cvsroot/otcl-tclcl/tclcl/tclcl.h,v 1.33 2005/09/07 04:53:51 tom_henderson Exp $ (LBL) */ #ifndef lib_tclcl_h #define lib_tclcl_h #include #include #include extern "C" { #include } #include "tclcl-config.h" #include "tracedvar.h" // tclcl-mappings.h included below, AFTER definition of class Tcl struct Tk_Window_; class Tcl { public: /* constructor should be private but SGIs C++ compiler complains*/ Tcl(); static void init(const char* application); static void init(Tcl_Interp*, const char* application); static inline Tcl& instance() { return (instance_); } inline int dark() const { return (tcl_ == 0); } inline Tcl_Interp* interp() const { return (tcl_); } #if TCL_MAJOR_VERSION >= 8 int evalObj(Tcl_Obj *pObj) { return Tcl_GlobalEvalObj(tcl_, pObj); } int evalObjs(int objc, Tcl_Obj **objv) { Tcl_Obj* pListObj = Tcl_NewListObj(objc, objv); int retcode = evalObj(pListObj); Tcl_DecrRefCount(pListObj); return retcode; } Tcl_Obj* objResult() const { return Tcl_GetObjResult(tcl_); } int resultAs(int* pInt) { return Tcl_GetIntFromObj(tcl_, objResult(), pInt); } int resultAs(long* pLong) { return Tcl_GetLongFromObj(tcl_, objResult(), pLong); } int resultAs(double* pDbl) { return Tcl_GetDoubleFromObj(tcl_, objResult(), pDbl); } void result(Tcl_Obj *pObj) { Tcl_SetObjResult(tcl_, pObj); } inline const char* result() const { return (char *) Tcl_GetStringResult(tcl_); } #else /* TCL_MAJOR_VERSION >= 8 */ /* may not work at all! */ inline char* result() const { return (tcl_->result); } #endif /* TCL_MAJOR_VERSION >= 8 */ inline void result(const char* p) { tcl_->result = (char*)p; } void resultf(const char* fmt, ...); inline void CreateCommand(const char* cmd, Tcl_CmdProc* cproc, ClientData cd = 0, Tcl_CmdDeleteProc* dproc = 0) { Tcl_CreateCommand(tcl_, (char*)cmd, cproc, cd, dproc); } inline void CreateCommand(Tcl_CmdProc* cproc, ClientData cd = 0, Tcl_CmdDeleteProc* dproc = 0) { Tcl_CreateCommand(tcl_, buffer_, cproc, cd, dproc); } inline void DeleteCommand(const char* cmd) { Tcl_DeleteCommand(tcl_, (char*)cmd); } inline void EvalFile(const char* file) { if (Tcl_EvalFile(tcl_, (char*)file) != TCL_OK) error(file); } inline const char* var(const char* varname, int flags = TCL_GLOBAL_ONLY) { return ((char *) Tcl_GetVar(tcl_, (char*)varname, flags)); } /* * Hooks for invoking the tcl interpreter: * eval(char*) - when string is in writable store * evalc() - when string is in read-only store (e.g., string consts) * [ eval(const char*) is a synonym ] * evalf() - printf style formatting of command * Or, write into the buffer returned by buffer() and * then call eval(void). */ void eval(char* s); void eval(const char* s) { evalc(s); }; void evalc(const char* s); void eval(); char* buffer() { return (bp_); } /* * This routine used to be inlined, but SGI's C++ compiler * can't hack stdarg inlining. No big deal here. */ void evalf(const char* fmt, ...); inline void add_error(const char *string) { Tcl_AddErrorInfo(interp(), (char *) string); } void add_errorf(const char *fmt, ...); inline struct Tk_Window_* tkmain() const { return (tkmain_); } inline void tkmain(struct Tk_Window_* w) { tkmain_ = w; } void add_option(const char* name, const char* value); void add_default(const char* name, const char* value); const char* attr(const char* attr) const; const char* application() const { return (application_); } inline const char* rds(const char* a, const char* fld) const { return (Tcl_GetVar2(tcl_, (char*)a, (char*)fld, TCL_GLOBAL_ONLY)); } TclObject* lookup(const char* name); void enter(TclObject*); void remove(TclObject*); private: void error(const char*); static Tcl instance_; Tcl_Interp* tcl_; Tk_Window_* tkmain_; char* bp_; const char* application_; char buffer_[4096]; Tcl_HashTable objs_; }; #include "tclcl-mappings.h" class InstVar; class TclObject { public: virtual ~TclObject(); inline static TclObject* lookup(const char* name) { return (Tcl::instance().lookup(name)); } inline const char* name() { return (name_); } void name(const char*); /*XXX -> method?*/ virtual int command(int argc, const char*const* argv); virtual void trace(TracedVar*); void bind(const char* var, TracedInt* val); void bind(const char* var, TracedDouble* val); void bind(const char* var, double* val); void bind_bw(const char* var, double* val); void bind_time(const char* var, double* val); void bind(const char* var, unsigned int* val); void bind(const char* var, int* val); void bind_bool(const char* var, int* val); void bind(const char* var, TclObject** val); void bind_error(const char* var, const char* error); #if defined(HAVE_INT64) void bind(const char* var, int64_t* val); #endif /* give an error message and exit if the old variable name is used either for read or write */ #define _RENAMED(oldname, newname) \ bind_error(oldname, "variable "oldname" is renamed to "newname) virtual int init(int /*argc*/, const char*const* /*argv*/) { return (TCL_OK); } static TclObject *New(const char *className) { return New(className, NULL); } static TclObject *New(const char *className, const char *arg1, ...); static int Delete(TclObject *object); int Invoke(const char *method, ...); int Invokef(const char *format, ...); static int dispatch_static_proc(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); void create_instvar(const char *var); int create_framevar(const char *localName); bool delay_bind(const char *varName, const char* localName, const char* thisVarName, double* val, TclObject *tracer); bool delay_bind(const char *varName, const char* localName, const char* thisVarName, unsigned int* val, TclObject *tracer); bool delay_bind_bw(const char *varName, const char* localName, const char* thisVarName, double* val, TclObject *tracer); bool delay_bind_time(const char *varName, const char* localName, const char* thisVarName, double* val, TclObject *tracer); bool delay_bind(const char *varName, const char* localName, const char* thisVarName, int* val, TclObject *tracer); bool delay_bind_bool(const char *varName, const char* localName, const char* thisVarName, int* val, TclObject *tracer); bool delay_bind(const char *varName, const char* localName, const char* thisVarName, TracedInt* val, TclObject *tracer); bool delay_bind(const char *varName, const char* localName, const char* thisVarName, TracedDouble* val, TclObject *tracer); #if defined(HAVE_INT64) bool delay_bind(const char *varName, const char* localName, const char* thisVarName, int64_t* val, TclObject *tracer); #endif virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer); virtual void delay_bind_init_all(); void delay_bind_init_one(const char *varName); // Common interface for all the 'fprintf(stderr,...); abort();' stuff static void msg_abort(const char* fmt = NULL, ...); protected: void init(InstVar*, const char* varname); TclObject(); void insert(InstVar*); void insert(TracedVar*); void not_a_TracedVar(const char *name); void handle_TracedVar(const char *name, TracedVar *tv, TclObject *tracer); int traceVar(const char* varName, TclObject* tracer); // Enumerate through traced vars, and call their corresponding // handlers. int enum_tracedVars(); #if 0 /* allocate in-line rather than with new to avoid pointer and malloc overhead. */ #define TCLCL_NAME_LEN 12 char name_[TCLCL_NAME_LEN]; #else /* ! 0 */ char *name_; #endif /* 0 */ InstVar* instvar_; TracedVar* tracedvar_; }; /* * johnh xxx: delete this * #define DELAY_BIND_DISPATCH(VARNAME_P, LOCALNAME_P, VARNAME_STRING, BIND_FUNCTION, PTR_TO_FIELD) \ * if (strcmp(VARNAME_P, VARNAME_STRING) == 0) { \ * return BIND_FUNCTION(LOCALNAME_P, PTR_TO_FIELD); \ * } * * now standard is: * if (delay_bind(varName, localName, "foo_", &foo_, &tv)) return TCL_OK; */ class TclClass { public: static void init(); virtual ~TclClass(); protected: TclClass(const char* classname); virtual TclObject* create(int argc, const char*const*argv) = 0; private: static int create_shadow(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]); static int delete_shadow(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]); static int dispatch_cmd(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]); static int dispatch_init(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); static int dispatch_instvar(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]); static TclClass* all_; TclClass* next_; protected: virtual void otcl_mappings() { } virtual void bind(); virtual int method(int argc, const char*const* argv); void add_method(const char* name); static int dispatch_method(ClientData, Tcl_Interp*, int ac, CONST84 char** av); OTclClass* class_; const char* classname_; }; class EmbeddedTcl { public: inline EmbeddedTcl(const char* code) { code_ = code; } void load(); int load(Tcl_Interp* interp); const char* get_code() { return code_; } private: const char* code_; }; /* * A simple command interface. */ class TclCommand { public: virtual ~TclCommand(); protected: TclCommand(const char* cmd); virtual int command(int argc, const char*const* argv) = 0; private: const char* name_; static int dispatch_cmd(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[]); }; #endif tclcl-1.20/timer.cc0000664000076400007660000000517606413156710013061 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ static const char rcsid[] = "@(#) $Header: /cvsroot/otcl-tclcl/tclcl/timer.cc,v 1.4 1997/09/27 10:19:52 tecklee Exp $ (LBL)"; extern "C" { #include #ifndef WIN32 #include #endif } #include "tclcl.h" #include "timer.h" Timer::Timer() : token_(0) { } Timer::~Timer() { if (token_ != 0) cancel(); } void Timer::msched(int ms) { if (token_) Tcl_DeleteTimerHandler(token_); token_ = Tcl_CreateTimerHandler(ms, dispatch, (ClientData)this); } void Timer::dispatch(ClientData cd) { Timer* t = (Timer*)cd; t->token_ = 0; t->timeout(); } void Timer::cancel() { if (token_ != 0) { Tcl_DeleteTimerHandler(token_); token_ = 0; } } double Timer::gettimeofday() const { timeval tv; ::gettimeofday(&tv, 0); return (1e6 * double(tv.tv_sec) + double(tv.tv_usec)); } tclcl-1.20/timer.h0000664000076400007660000000475506307406275012733 0ustar tomhnsnam/* * Copyright (c) 1993-1994 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and the Network Research Group at * Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#) $Header: /cvsroot/otcl-tclcl/tclcl/timer.h,v 1.2 1997/03/06 00:15:57 mccanne Exp $ (LBL) */ #ifndef vic_timer_h #define vic_timer_h extern "C" { #include } class Timer { protected: Timer(); public: virtual ~Timer(); void msched(int milliseconds); inline void usched(double usec) { msched((int)(usec / 1000.)); } inline void ssched(int seconds) { msched(1000 * seconds); } void cancel(); double gettimeofday() const; protected: virtual void timeout() = 0; private: static void dispatch(ClientData); Tcl_TimerToken token_; }; #ifdef notyet class Clock : public Timer { public: Clock(Tk_Window); period(int); int lag(); }; #endif #endif tclcl-1.20/tkAppInit.cc0000664000076400007660000000715706402244075013645 0ustar tomhnsnam/* * tkAppInit.c -- * * Provides a default version of the Tcl_AppInit procedure for * use in wish and similar Tk-based applications. * * Copyright (c) 1993 The Regents of the University of California. * Copyright (c) 1994 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkAppInit.c 1.21 96/03/26 16:47:07 */ #include "tk.h" #include "tclcl.h" extern "C" { #include } /* * The following variable is a special hack that is needed in order for * Sun shared libraries to be used for Tcl. */ extern "C" { extern int matherr(); int *tclDummyMathPtr = (int *) matherr; } extern "C" { /* override the platform init routine in the tk library */ int TkPlatformInit(Tcl_Interp *interp) { extern void TkCreateXEventSource(void); Tcl_SetVar(interp, "tk_library", ".", TCL_GLOBAL_ONLY); #ifndef WIN32 TkCreateXEventSource(); #endif return (TCL_OK); } } #ifdef TK_TEST EXTERN int Tktest_Init _ANSI_ARGS_((Tcl_Interp *interp)); #endif /* TK_TEST */ /* *---------------------------------------------------------------------- * * main -- * * This is the main program for the application. * * Results: * None: Tk_Main never returns here, so this procedure never * returns either. * * Side effects: * Whatever the application does. * *---------------------------------------------------------------------- */ int main(int argc, char** argv) { Tk_Main(argc, argv, Tcl_AppInit); return 0; /* Needed only to prevent compiler warning. */ } extern int Tk_BargraphCmd(); /* *---------------------------------------------------------------------- * * Tcl_AppInit -- * * This procedure performs application-specific initialization. * Most applications, especially those that incorporate additional * packages, will have their own version of this procedure. * * Results: * Returns a standard Tcl completion code, and leaves an error * message in interp->result if an error occurs. * * Side effects: * Depends on the startup script. * *---------------------------------------------------------------------- */ /*XXX*/ int use_shm = 0; int Tcl_AppInit(Tcl_Interp *interp) { #ifdef notdef if (Tcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; } #endif if (Tk_Init(interp) == TCL_ERROR) { return TCL_ERROR; } Tcl_StaticPackage(interp, "Tk", Tk_Init, (Tcl_PackageInitProc *) NULL); #ifdef TK_TEST if (Tktest_Init(interp) == TCL_ERROR) { return TCL_ERROR; } Tcl_StaticPackage(interp, "Tktest", Tktest_Init, (Tcl_PackageInitProc *) NULL); #endif /* TK_TEST */ /* * Call the init procedures for included packages. Each call should * look like this: * * if (Mod_Init(interp) == TCL_ERROR) { * return TCL_ERROR; * } * * where "Mod" is the name of the module. */ if (Otcl_Init(interp) == TCL_ERROR) return TCL_ERROR; Tcl::init(interp, "mash"); Tcl::instance().tkmain(Tk_MainWindow(interp)); extern EmbeddedTcl et_tk; et_tk.load(); /* * Call Tcl_CreateCommand for application-specific commands, if * they weren't already created by the init procedures called above. */ /* * Specify a user-specific startup file to invoke if the application * is run interactively. Typically the startup file is "~/.apprc" * where "app" is the name of the application. If this line is deleted * then no user-specific startup file will be run under any conditions. */ Tcl_SetVar(interp, "tcl_rcFileName", "~/.wishrc", TCL_GLOBAL_ONLY); return TCL_OK; } tclcl-1.20/TODO.html0000664000076400007660000000123306720071674013061 0ustar tomhnsnam tclcl TODO list

    tclcl: TODO list

    The person who recommends the todo work does not necessarily do them by him/herself.


    tclcl-1.20/tracedvar.cc0000664000076400007660000000777111316734004013713 0ustar tomhnsnam/* * Copyright (c) 1997 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the Daedalus Research * Group at the University of California Berkeley. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * Contributed by Giao Nguyen, http://daedalus.cs.berkeley.edu/~gnguyen */ #include "tclcl.h" #include "tclcl-internal.h" #include "tracedvar.h" #ifdef STDC_HEADERS #include // for abort() on redhat 7.0beta #endif /* STDC_HEADERS */ #ifdef TCLCL_USE_STREAM #include enum { ios__number = ios::basefield + ios::floatfield, ios__fields = ios::adjustfield + ios::basefield + ios::floatfield, }; void TracedVar::format(ostrstream& os) { // format adjustfield and number field only if iosMask is set if (iosMask_ & ios::adjustfield) os.setf(iosMask_, ios::adjustfield); if (iosMask_ & ios__number) os.setf(iosMask_, ios__number); os.setf(iosMask_, ~ios__fields); } void TracedVar::format(ostrstream&) { } #endif TracedVar::TracedVar() : initialized_(false), name_(""), owner_(0), tracer_(0), #ifdef TCLCL_USE_STREAM iosWidth_(0), iosPrecision_(0), iosMask_(0), #endif /* TCLCL_USE_STREAM */ next_(0) { } TracedVar::TracedVar(const char* name) : initialized_(false), name_(name), owner_(0), tracer_(0), #ifdef TCLCL_USE_STREAM iosWidth_(0), iosPrecision_(0), iosMask_(0), #endif /* TCLCL_USE_STREAM */ next_(0) { } void TracedInt::assign(int newval) { // if value changes, set new value and call tracer if exist if (initialized_ && val_ == newval) return; val_ = newval; initialized_ = true; if (tracer_) tracer_->trace(this); } char* TracedInt::value(char* buf, int buflen) { if (buf == 0) return 0; #ifdef TCLCL_USE_STREAM ostrstream ost(buf, 16 + iosWidth_); format(ost); ost.width(iosWidth_); ost << val_; #else // sprintf(buf, "%*d", iosWidth_, val_); if (-1 == snprintf(buf, buflen, "%d", val_)) abort(); #endif return buf; } void TracedDouble::assign(double newval) { // if value changes, set new value and call tracer if exist if (initialized_ && val_ == newval) return; val_ = newval; initialized_ = true; if (tracer_) tracer_->trace(this); } char* TracedDouble::value(char* buf, int buflen) { if (buf == 0) return 0; #ifdef TCLCL_USE_STREAM ostrstream ost(buf, 16 + iosWidth_); format(ost); ost.precision(iosPrecision_); ost << val_; #else // sprintf(buf, "%*.*f", iosWidth_, iosPrecision_, val_); if (-1 == snprintf(buf, buflen, "%g", val_)) abort(); #endif return buf; } tclcl-1.20/tracedvar.h0000664000076400007660000001411011316734004013536 0ustar tomhnsnam/* * Copyright (c) 1997 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the Daedalus Research * Group at the University of California Berkeley. * 4. Neither the name of the University nor of the Laboratory may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * Contributed by Giao Nguyen, http://daedalus.cs.berkeley.edu/~gnguyen */ #ifndef tracedvar_h #define tracedvar_h /* * If TCLCL_USE_STREAM is defined, we pick up * the ability to set the formatting precision/width * and use streams. * This is not compiled in by default since ns doesn't use streams. */ class ostrstream; class TclObject; class TracedVar { public: TracedVar(); virtual ~TracedVar() {} virtual char* value(char* buf, int buflen) = 0; inline const char* name() { return (name_); } inline void name(const char* name) { name_ = name; } inline TclObject* owner() { return owner_; } inline void owner(TclObject* o) { owner_ = o; } inline TclObject* tracer() { return tracer_; } inline void tracer(TclObject* o) { tracer_ = o; } #ifdef TCLCL_USE_STREAM inline void width(int n) { iosWidth_ = n; } inline short iosMask() { return iosMask_; } inline void setf(short val) { iosMask_ |= val; } inline void setf(short val, short mask) { iosMask_ = (iosMask_ & ~mask) | (val & mask); } #endif /* TCLCL_USE_STREAM */ protected: TracedVar(const char* name); bool initialized_; #ifdef TCLCL_USE_STREAM inline void format(ostrstream& os); #endif /* TCLCL_USE_STREAM */ const char* name_; // name of the variable TclObject* owner_; // the object that owns this variable TclObject* tracer_; // callback when the variable is changed #ifdef TCLCL_USE_STREAM unsigned char iosWidth_; // ios format width unsigned char iosPrecision_; // ios format precision short iosMask_; // ios flag for setf #endif /* TCLCL_USE_STREAM */ public: TracedVar* next_; // to make a link list }; class TracedInt : public TracedVar { public: TracedInt() : TracedVar() {} TracedInt(int v) : TracedVar(), val_(v) { initialized_ = true; } virtual ~TracedInt() {} // implicit conversion operators inline operator int() { return val_; } // unary operators inline int operator++() { assign(val_ + 1); return val_; } inline int operator--() { assign(val_ - 1); return val_; } inline int operator++(int) { int v = val_; assign(v + 1); return v; } inline int operator--(int) { int v = val_; assign(v - 1); return v; } // assignment operators inline TracedInt& operator=(const TracedInt& v) { assign(v.val_); return (*this); } inline int operator=(int v) { assign(v); return val_; } inline int operator+=(int v) { return operator=(val_ + v); } inline int operator-=(int v) { return operator=(val_ - v); } inline int operator*=(int v) { return operator=(val_ * v); } inline int operator/=(int v) { return operator=(val_ / v); } inline int operator%=(int v) { return operator=(val_ % v); } inline int operator<<=(int v) { return operator=(val_ << v); } inline int operator>>=(int v) { return operator=(val_ >> v); } inline int operator&=(int v) { return operator=(val_ & v); } inline int operator|=(int v) { return operator=(val_ | v); } inline int operator^=(int v) { return operator=(val_ ^ v); } virtual char* value(char* buf, int buflen); protected: virtual void assign(const int newval); int val_; // value stored by this trace variable }; class TracedDouble : public TracedVar { public: TracedDouble() : TracedVar() {} TracedDouble(double v) : TracedVar(), val_(v) { initialized_ = true; #ifdef TCLCL_USE_STREAM iosPrecision_ = 6; #endif /* TCLCL_USE_STREAM */ } virtual ~TracedDouble() {} inline operator double() { return val_; } inline double operator++() { assign(val_ + 1); return val_; } inline double operator--() { assign(val_ - 1); return val_; } inline double operator++(int) { double v = val_; assign(v + 1); return v; } inline double operator--(int) { double v = val_; assign(v - 1); return v; } inline TracedDouble& operator=(const TracedDouble& v) { assign(v.val_); return (*this); } inline double operator=(double v) { assign(v); return val_; } inline double operator+=(double v) { return operator=(val_ + v); } inline double operator-=(double v) { return operator=(val_ - v); } inline double operator*=(double v) { return operator=(val_ * v); } inline double operator/=(double v) { return operator=(val_ / v); } #ifdef TCLCL_USE_STREAM inline void precision(int n) { iosPrecision_ = n; } #endif /* TCLCL_USE_STREAM */ virtual char* value(char* buf, int buflen); protected: virtual void assign(const double newval); double val_; // value stored by this trace variable }; #endif tclcl-1.20/VERSION0000664000076400007660000000000511335075505012465 0ustar tomhnsnam1.20