# config

name: css
value:
  body {
      margin: 0 auto;
      min-width: 800px;
      padding: 0px 20px;
      background-color: white;
      font-family: sans-serif;
      font-size:14pt;
      -moz-text-size-adjust: none;
      -webkit-text-size-adjust: none;
      -mx-text-size-adjust: none;
  }

  a {
      color: #4183C4;
      text-decoration: none;
  }
  a:hover {
      color: #4183C4;
      text-decoration: underline;
  }

  hr {
      color: #eee;
  }

  .title {
      color: #4183C4;
      float:left;
      padding-top: 30px;
      padding-bottom: 10px;
  }
  .title h1 {
      display:inline;
  }
  .title h1:after {
      content: " / ";
      color: #777;
      font-weight: normal;
  }

  .content h1 {
      font-size: 1.25em;
  }
  .content h2 {
      font-size: 1.15em;
  }
  .content h3 {
      font-size: 1.05em;
      font-weight: bold;
  }

  .section {
      font-size: 1em;
      font-weight: bold;
      background-color: #f5f5f5;
      border: 1px solid #d8d8d8;
      border-radius: 3px 3px 0 0;
      padding: 9px 10px 10px;
      margin: 10px 0;
  }

  .sectionmenu {
      border: 1px solid #d8d8d8;
      border-radius: 0 0 3px 3px;
      border-top: 0;
      margin-top: -10px;
      margin-bottom: 10px;
      padding: 10px;
  }
  .sectionmenu a {
      display: inline-block;
      margin-right: 1em;
  }

  .status {
      float:right;
      font-size:.7em;
      padding-top:50px;
  }

  .mainmenu {
      font-size:.8em;
      clear:both;
      padding:10px;
      background:#eaeaea linear-gradient(#fafafa, #eaeaea) repeat-x;
      border:1px solid #eaeaea;
      border-radius:5px;
  }

  .mainmenu a {
      padding: 10px 20px;
      text-decoration:none;
      color: #777;
      border-right:1px solid #eaeaea;
  }
  .mainmenu a.active,
  .mainmenu a:hover {
      color: #000;
      border-bottom:2px solid #D26911;
  }

  .submenu {
      font-size: .7em;
      margin-top: 10px;
      padding: 10px;
      border-bottom: 1px solid #ccc;
  }

  .submenu a, .submenu label {
      padding: 10px 11px;
      text-decoration:none;
      color: #777;
  }

  .submenu a:hover, .submenu label:hover {
      padding: 6px 10px;
      border: 1px solid #ccc;
      border-radius: 5px;
      color: #000;
  }

  .content {
      padding-top: 10px;
      font-size:.8em;
      color: #444;
  }

  .udiff, .sbsdiff {
      font-size: .85em !important;
      overflow: auto;
      border: 1px solid #ccc;
      border-radius: 5px;
  }
  .content blockquote {
      padding: 0 15px;
  }

  table.report {
      cursor: auto;
      border-radius: 5px;
      border: 1px solid #ccc;
      margin: 1em 0;
  }
  .report td, .report th {
     border: 0;
     font-size: .8em;
     padding: 10px;
  }
  .report td:first-child {
      border-top-left-radius: 5px;
  }
  .report tbody tr:last-child td:first-child {
      border-bottom-left-radius: 5px;
  }
  .report td:last-child {
      border-top-right-radius: 5px;
  }
  .report tbody tr:last-child {
      border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
  }
  .report tbody tr:last-child td:last-child {
      border-bottom-right-radius: 5px;
  }
  .report th {
      cursor: pointer;
  }
  .report thead+tbody tr:hover {
      background-color: #f5f9fc !important;
  }

  td.tktDspLabel {
      width: 70px;
      text-align: right;
      overflow: hidden;
  }
  td.tktDspValue {
      text-align: left;
      vertical-align: top;
      background-color: #f8f8f8;
      border: 1px solid #ccc;
  }
  td.tktDspValue pre {
      white-space: pre-wrap;
  }

  span.timelineDetail {
      font-size: 90%;
  }

  .footer {
      border-top: 1px solid #ccc;
      padding: 10px;
      font-size:.7em;
      margin-top: 10px;
      color: #ccc;
  }
  div.timelineDate {
      font-weight: bold;
      white-space: nowrap;
  }
  span.submenuctrl, span.submenuctrl input, select.submenuctrl {
    color: #777;
  }


name: header
value:
  <div class="header">
    <div class="title"><h1>$<project_name></h1>$<title></div>
      <div class="status"><th1>
   if {[info exists login]} {
     html "$login — <a href='$home/login'>Logout</a>\n"
   } else {
     html "<a href='$home/login'>Login</a>\n"
   }
      </th1></div>
  </div>
  <div class="mainmenu">
  <th1>
  proc menulink {url name} {
    upvar current_page current
    upvar home home
    if {[string range $url 0 [string length $current]] eq "/$current"} {
      html "<a href='$home$url' class='active'>$name</a>\n"
    } else {
      html "<a href='$home$url'>$name</a>\n"
    }
  }
  html "<a href='//core.tcl.tk'>Core <img src='//core.tcl.tk/images/ext.png'></a>"
  menulink $index_page Home
  if {[anycap jor]} {
    menulink /timeline Timeline
  }
  if {[hascap oh]} {
    menulink /dir?ci=tip Files
  }
  if {[hascap o]} {
    menulink  /brlist Branches
    menulink  /taglist Tags
  }
  if {[hascap r]} {
    menulink /ticket Tickets
  }
  if {[hascap j]} {
    menulink /wiki Wiki
  }
  if {[hascap s]} {
    menulink /setup Admin
  } elseif {[hascap a]} {
    menulink /setup_ulist Users
  }
  </th1></div>


name: footer
value:
  <div class="footer">
  This page was generated in about
  <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
  Fossil $release_version $manifest_version $manifest_date
  </div>


name: details
value:
  timeline-arrowheads:        1
  timeline-circle-nodes:      1
  timeline-color-graph-lines: 1
  white-foreground:           0


name: adunit
value:
  <div style="width: 640px; margin: 12px auto;">
    <img style="float: left; width: 32px; height: 32px; padding-right: 10px;"
         src="https://avatars3.githubusercontent.com/u/319421?v=3&s=200">
    <a href="https://github.com/flightaware/Tcl-bounties">Bounty program</a>
    for improvements to Tcl and certain Tcl packages.
  </div>
  <div style="width: 640px; margin: 12px auto;">
    <a href="https://www.tcl.tk/community/tcl2019/">Tcl 2019 Conference,
  Houston/TX, US, Nov 4-8</a><br>
    Send your abstracts to <a href="mailto:tclconference@googlegroups.com">
  tclconference@googlegroups.com</a><br> or submit via the
  <a href="http://tcl.tk/community/tcl2019/submit_form.html">online form</a>
  by Sep 9.
  </div>


name: project-description
value:
  The configurator used for Tcl Extension Architecture (TEA) extensions to the Tcl programming language.


name: ticket-table
value:
  -- single value fields, most current only
  CREATE TABLE ticket(
      -- Do not change any column that begins with tkt_
      tkt_id    INTEGER PRIMARY KEY,
      tkt_uuid  TEXT UNIQUE,
      tkt_mtime DATE,
      tkt_ctime DATE,

      -- Add as many fields as required below this line
      type            TEXT, -- Tracker
      status          TEXT, -- Primary workflow
      resolution      TEXT, -- Secondary workflow
      subsystem       TEXT, -- Functional module
      priority        TEXT, 
      severity        TEXT, 
      foundin         TEXT, -- Version issue was found in
      private_contact TEXT, 
      title           TEXT, -- summary description
      comment         TEXT, -- description
      cmimetype       TEXT, -- format of description
      submitter       TEXT, -- ticket creator
      assignee        TEXT, -- developer currently handling the ticket
      closer          TEXT, -- developer who closed the ticket, if closed
      closedate       TEXT, -- when the ticket got closed
      is_private	    INTEGER
  );
  -- listified ticket fields
  CREATE TABLE ticketchng(
      -- Do not change any column that begins with tkt_
      tkt_id    INTEGER REFERENCES ticket,
      tkt_rid   INTEGER REFERENCES blob,
      tkt_mtime DATE,
     			 			 			 
      -- Add as many fields as required below this line
      login    TEXT,
      username TEXT,
      mimetype TEXT,
      icomment TEXT
  );
  CREATE INDEX ticketchng_idx1 ON ticketchng(tkt_id, tkt_mtime);


name: ticket-common
value:
  # -*- tcl -*-
  # Fixed priorities, matching SourceForge
  set priority_choices {
      {1 Zero}
      2
      {3 Low}
      4
      {5 Medium}
      6
      {7 High}
      8
      {9 Immediate}
  }

  # Fixed resolutions, matching SourceForge
  set resolution_choices {
      None
      Fixed
      Accepted
      Rejected
      Later
      {Works For Me}
      Invalid
      Duplicate
      {Out of Date}
      Postponed
      Remind
      {Wont Fix}
  }

  # Fixed stati, matching SourceForge
  set status_choices {
      Open
      Pending
      Closed
      Deleted
  }

  # Fixed severities, matching Fossil standard.
  set severity_choices {
      Minor
      Critical
      Severe
      Important
      Cosmetic
  }

  # Dynamic: Developers to assign tickets are taken from the repository
  # user base.
  set assignee_choices {
      aku andreas_kupries anonymous das developer dgp dkf drh fvogel hoehlmann hypnotoad jan.nijtmans jenglish jhobbs kbk kevin_walzer mistachkin nobody oehhar steveb stever stwo twylite wiede
  }
  # Note: The query below is rejected by the report_query_authorizer.
  # Table user is not readable in reports and render scripts.
  if 0 {query {
      SELECT login AS xxperson
      FROM   user
      WHERE  length (pw) > 0
  } {
      lappend assignee_choices $xxperson
  }}

  # Dynamic fixed, possible trackers
  set type_choices {
      Bug Support Patch RFE
  }

  # Dynamic fixed, possible categories, functional modules
  set subsystem_choices {
      {- New Builtin Commands}
      {- New Builtin Object Types}
      {- New Stub Entries}
      {01. Notifier}
      {02. Event Loops}
      {03. Timer Events}
      {04. Async Events}
      {05. XT Notifier}
      {06. Time Measurement}
      {07. Variables}
      {08. Environment Variables}
      {09. Linked C Variables}
      {10. Objects}
      {11. Conversions From String}
      {11. Conversions from String}
      {12. ByteArray Object}
      {13. Index Object}
      {14. List Object}
      {15. Dict Object}
      {16. Commands A-H}
      {17. Commands I-L}
      {18. Commands M-Z}
      {19. [history]}
      {20. [interp]}
      {21. [namespace]}
      {22. [proc] and [uplevel]}
      {23. [scan]}
      {24. Channel Commands}
      {25. Channel System}
      {26. Channel Transforms}
      {27. Channel Types}
      {28. dde Package}
      {29. http Package}
      {30. msgcat Package}
      {31. opt Package}
      {32. registry Package}
      {33. Safe Base}
      {34. tcltest Package}
      {35. TclOO Package}
      {36. Pathname Management}
      {37. File System}
      {38. Init - Library - Autoload}
      {39. Package Manager}
      {40. Dynamic Loading}
      {41. Memory Allocation}
      {42. Memory Preservation}
      {43. Regexp}
      {44. UTF-8 Strings}
      {45. Parsing and Eval}
      {46. Traces}
      {47. Bytecode Compiler}
      {48. Number Handling}
      {49. Threading}
      {50. Embedding Support}
      {51. Release Notes}
      {52. Portability Support}
      {53. Configuration and Build Tools}
      {53. Configure and Build Tools}
      {54. Configuration Reporting}
      {55. Other Tools}
      {56. LibTomMath}
      {57. zlib}
      {60. NRE and coroutines}
      {61. (unused)}
      {62. (unused)}
      {63. (unused)}
      {67. [resource] (obsolete)}
      {68. Mac Classic (obsolete)}
      {69. Other}
      {70. Sample Extension}
      {75. Tutorial}
      {80. Thread Package}
      {81. Bundled Packages}
      {85. tclconfig}
      {90. FAQs}
      {91. Tutorial}
      {95. contrib ports}
      {None}
  }


name: ticket-newpage
value:
  <th1>
  if {![info exists mutype]} {set mutype {[links only]}}
  if {[info exists submit]} {
      set status     Open
      set resolution None
      set priority   {5 Medium}
      set assignee   nobody
      set closer     nobody
      set is_private 0
      set submitter  $login

      if {$mutype eq "HTML"} {
  	set cmimetype "text/html"
      } elseif {$mutype eq "Wiki"} {
  	set cmimetype "text/x-fossil-wiki"
      } else {
  	set cmimetype "text/plain"
      }
      submit_ticket
      set preview 1
  }
  </th1>
  <h1 style="text-align: center;">Enter A New Ticket</h1>

  <table cellpadding="5">
  <tr>
      <td align="right">Summary:</td>
      <td align="left" ><input type="text" name="title" size="60" value="$<title>"/></td>
      <td align="left" >Enter a one-line summary of the ticket.</td>
  </tr>
  <tr>
      <td align="right">Type:</td>
      <td align="left" ><th1>combobox type $type_choices 1</th1></td>
      <td align="left" >What type of ticket is this?</td>
  </tr>
  <tr>
      <td align="right">Version:</td>
      <td align="left" ><input type="text" name="foundin" size="20" value="$<foundin>" /></td>
      <td align="left" >In what version or build number do you observe the
                        problem?</td>
  </tr>
  <tr>
      <td align="right">Category:</td>
      <td align="left" ><th1>combobox subsystem $subsystem_choices 1</th1></td>
      <td align="left" >Roughly where do you see the problem?</td>
  </tr>
  <tr>
      <td align="right">Severity:</td>
      <td align="left" ><th1>combobox severity $severity_choices 1</th1></td>
      <td align="left" >How debilitating is the problem?  How badly does the
                        problem affect the operation of the product?</td>
  </tr>
  <tr>
      <td align="right">EMail:</td>
      <td align="left" ><input type="text" name="private_contact" value="$<private_contact>" size="30" /></td>
      <td align="left" ><u>Not publicly visible</u> Used by developers to
                        contact you with questions.</td>
  </tr>

  <tr><td colspan="3">
  Enter a detailed description of the problem.
  For code defects, be sure to provide details
  on exactly how the problem can be reproduced.
  Provide as much detail as possible.
  <br/>Format:
  <th1>combobox mutype {{Plain Text} HTML Wiki} 1</th1>
  <br/>
  <th1>set nline [linecount $comment 50 10]</th1>
  <textarea name="comment" cols="80" rows="$nline"
  wrap="virtual" class="wikiedit">$<comment></textarea><br/>
  </td></tr>

  <th1>enable_output [info exists preview]</th1>
  <tr><td colspan="3">
  Description Preview:<br /><hr />
  <th1>
  if {$mutype eq "Wiki"} {
      wiki $comment
  } elseif {$mutype eq "Plain Text"} {
      set r [randhex]
      wiki "<verbatim-$r links>[string trimright $comment]\n</verbatim-$r>"
  } else { # HTML
      wiki "<nowiki>$comment\n</nowiki>"
  }
  </th1>
  <hr /></td></tr>
  <th1>enable_output 1</th1>

  <tr>
      <td>&nbsp;</td>
      <td align="left"><input type="submit" name="preview" value="Preview" /></td>
      <td align="left">See how the description will appear after formatting.</td>
  </tr>

  <th1>enable_output [info exists preview]</th1>
  <tr>
      <td>&nbsp;</td>
      <td align="left"><input type="submit" name="submit" value="Submit" /></td>
      <td align="left">After filling in the information above, press this button
                       to create the new ticket</td>
  </tr>
  <th1>enable_output 1</th1>

  <tr>
      <td>&nbsp;</td>
      <td align="left"><input type="submit" name="cancel" value="Cancel" /></td>
      <td>Abandon and forget this ticket</td>
  </tr>
  </table>


name: ticket-viewpage
value:
  <th1>
  set alwaysPlaintext [info exists plaintext]
  query {SELECT datetime ($tkt_ctime) AS tkt_cdatetime} {}
  query {SELECT datetime ($closedate) AS fmt_closedate} {}
  query {SELECT rtrim($tkt_uuid,'f')  AS tkt_uuidtrim}  {}
  </th1>

  <table cellpadding="5">
  <tr><td class="tktDspLabel">Ticket&nbsp;UUID:</td>
  <th1>
  if {[hascap s]} {
      html "<td class='tktDspValue' colspan='3'>$tkt_uuidtrim ($tkt_id)</td>\n"
  } else {
      html "<td class='tktDspValue' colspan='3'>$tkt_uuidtrim</td>\n"
  }
  </th1>
  </tr>
  <tr>
      <td class="tktDspLabel">Title:</td>
      <td class="tktDspValue" colspan="3">$<title></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Type:</td>
      <td class="tktDspValue">$<type></td>
      <td class="tktDspLabel">Version:</td>
      <td class="tktDspValue">$<foundin></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Submitter:</td>
      <td class="tktDspValue">$<submitter></td>
      <td class="tktDspLabel">Created&nbsp;on:</td>
      <td class="tktDspValue">$<tkt_cdatetime></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Subsystem:</td>
      <td class="tktDspValue">$<subsystem></td>
      <td class="tktDspLabel">Assigned&nbsp;To:</td>
      <td class="tktDspValue">$<assignee></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Priority:</td>
      <td class="tktDspValue">$<priority></td>
      <td class="tktDspLabel">Severity:</td>
      <td class="tktDspValue">$<severity></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Status:</td>
      <td class="tktDspValue">$<status></td>
      <td class="tktDspLabel">Last&nbsp;Modified:</td>
      <td class="tktDspValue">$<tkt_datetime></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Resolution:</td>
      <td class="tktDspValue">$<resolution></td>
      <td class="tktDspLabel">Closed&nbsp;By:</td>
      <td class="tktDspValue">$<closer></td>
  </tr>
  <tr>
  <th1>enable_output [hascap e]</th1>
      <td class="tktDspLabel">Contact:</td>
      <td class="tktDspValue">$<private_contact></td>
  <th1>enable_output [expr {![hascap e]}]</th1>
      <td class="tktDspLabel">&nbsp;</td>
      <td class="tktDspValue">&nbsp;</td>
  <th1>enable_output 1</th1>
      <td class="tktDspLabel">Closed&nbsp;on:</td>
      <td class="tktDspValue">$<fmt_closedate></td>
  </tr>

  <th1>
  if {[info exists comment] && [string length $comment]>10} {
    html {
      <tr><td class="tktDspLabel" valign=top>Description:</td>
          <td colspan="4" class="tktDspValue">
    }
    # plaintext vs. formatted
    # mimetypes: text/plain, text/html, text/x-fossil-wiki
    #            NOT USED: text/x-fossil-plain
    if {$alwaysPlaintext} {
      set r [randhex]
      if {$cmimetype ne "text/plain"} {html "([htmlize $cmimetype])\n"}
      wiki "<verbatim-$r>[string trimright $comment]</verbatim-$r>\n"
    } elseif {$cmimetype eq "text/plain"} {
      set r [randhex]
      wiki "<verbatim-$r links>[string trimright $comment]</verbatim-$r>\n"
    } elseif {$cmimetype eq "text/x-fossil-wiki"} {
      wiki "<p>\n[string trimright $comment]\n</p>\n"
    } elseif {$cmimetype eq "text/html"} {
      wiki "<p><nowiki>\n[string trimright $comment]\n</nowiki>\n"
    } else {
      set r [randhex]
      wiki "<verbatim-$r links>[string trimright $comment]</verbatim-$r>\n"
    }
    html {</tr>}
  }
  </th1>

  <th1>
  set seenRow 0
  query {
      SELECT datetime(tkt_mtime) AS xdate,
             login               AS xlogin,
             mimetype            AS xmimetype,
  	   icomment            AS xcomment,
             username            AS xusername
      FROM  ticketchng
      WHERE tkt_id = $tkt_id
      AND   length(icomment) > 0
      ORDER BY tkt_mtime DESC
  } {
    if {$seenRow} {
      html "<hr>\n"
    } else {
      html "<tr><td class='tktDspLabel' valign='top'>User Comments:</td>\n"
      html "    <td colspan='4' class='tktDspValue'>\n"
      set seenRow 1
    }
    if {[info exists showfields]} {
      html "<ul><p>date=$xdate<br>login=$xlogin<br>user=$xusername<br>mime=$xmimetype<br>comment=$xcomment</p></ul>"
    }
    html "[htmlize $xlogin]"
    if {$xlogin ne $xusername && [string length $xusername]>0} {
      html " (claiming to be [htmlize $xusername])"
    }
    html " added on $xdate:\n"
    if {$alwaysPlaintext || $xmimetype eq "text/plain"} {
      set r [randhex]
      if {$xmimetype ne "text/plain"} {html "([htmlize $xmimetype])\n"}
      wiki "<verbatim-$r>[string trimright $xcomment]</verbatim-$r>\n"
    } elseif {$xmimetype eq "text/x-fossil-wiki"} {
      wiki "<p>\n[string trimright $xcomment]\n</p>\n"
    } elseif {$xmimetype eq "text/html"} {
      wiki "<p><nowiki>\n[string trimright $xcomment]\n</nowiki>\n"
    } else {
      set r [randhex]
      wiki "<verbatim-$r links>[string trimright $xcomment]</verbatim-$r>\n"
    }
  }
  if {$seenRow} {html "</td></tr>\n"}
  </th1>
  </table>


name: ticket-editpage
value:
  <th1>
  query {SELECT datetime ($tkt_ctime) AS tkt_cdatetime} {}
  query {SELECT datetime ($closedate) AS fmt_closedate} {}
  query {SELECT rtrim($tkt_uuid,'f')  AS tkt_uuidtrim}  {}

  if {![info exists mutype]}   {set mutype {Plain Text}}
  if {![info exists icomment]} {set icomment {}}
  if {![info exists username]} {set username $login}

  if {![info exists cmutype]} {set cmutype {Plain Text}}
  if {![info exists comment]} {set comment {}}

  if {[info exists submit]} {
      if {$mutype eq "Wiki"} {
  	set mimetype text/x-fossil-wiki
      } elseif {$mutype eq "HTML"} {
  	set mimetype text/html
      } elseif {$mutype eq {[links only]}} {
  	set mimetype text/x-fossil-plain
      } else {
  	set mimetype text/plain
      }
      if {$status eq "Closed" || $status eq "Deleted"} {
  	set closer $login
  	query {SELECT julianday('now') AS closedate} {}
      } else {
  	set closer nobody
  	unset closedate
      }

      submit_ticket
      set preview 1
  }
  </th1>

  <table cellpadding="5">
  <tr><td class="tktDspLabel">Ticket&nbsp;UUID:</td>
  <th1>
  if {[hascap s]} {
      html "<td class='tktDspValue' colspan='3'>$tkt_uuidtrim ($tkt_id)</td>\n"
  } else {
      html "<td class='tktDspValue' colspan='3'>$tkt_uuidtrim</td>\n"
  }
  </th1>
  </tr>
  <tr>
      <td align="right">Title:</td>
      <td align="left" colspan="3"><input type="text" name="title" value="$<title>" size="60" /></td>
  </tr>
  <tr>
  <tr>
      <td align="right">Type:</td>
      <td align="left" ><th1>combobox type $type_choices 1</th1></td>
      <td align="right">Version:</td>
      <td align="left" ><input type="text" name="foundin" size="50" value="$<foundin>" /></td>
  </tr>
  <tr>
      <td class="tktDspLabel">Submitter:</td>
      <td class="tktDspValue">$<submitter></td>
      <td class="tktDspLabel">Created&nbsp;on:</td>
      <td class="tktDspValue">$<tkt_cdatetime></td>
  </tr>
  <tr>
      <td align="right">Subsystem:</td>
      <td align="left"><th1>combobox subsystem $subsystem_choices 1</th1></td>
      <td align="right">Assigned&nbsp;To:</td>
      <td align="left" ><th1>combobox assignee $assignee_choices 1</th1></td>
  </tr>
  <tr>
      <td align="right">Priority:</td>
      <td align="left" ><th1>combobox priority $priority_choices 1</th1></td>
      <td align="right">Severity:</td>
      <td align="left" ><th1>combobox severity $severity_choices 1</th1></td>
  </tr>
  <tr>
      <td align="right">Status:</td>
      <td align="left" ><th1>combobox status $status_choices 1</th1></td>
      <td class="tktDspLabel">Last&nbsp;Modified:</td>
      <td class="tktDspValue">$<tkt_datetime></td>
  </tr>
  <tr>
      <td align="right">Resolution:</td>
      <td align="left" ><th1>combobox resolution $resolution_choices 1</th1></td>
      <td class="tktDspLabel">Closed&nbsp;By:</td>
      <td class="tktDspValue">$<closer></td>
  </tr>
  <tr>
  <th1>enable_output [hascap e]</th1>
      <td align="right">Contact:</td>
      <td><input type="text" name="private_contact" size="40" value="$<private_contact>" /></td>
  <th1>enable_output [expr {![hascap e]}]</th1>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
  <th1>enable_output 1</th1>
      <td class="tktDspLabel">Closed&nbsp;on:</td>
      <td class="tktDspValue">$<fmt_closedate></td>
  </tr>
  <tr>
      <td align="right">Description:</td>
      <td align="left" colspan="3"><th1>combobox cmutype {{Plain Text} HTML Wiki} 1</th1>:</td>
  </tr>
  <tr>
      <td>&nbsp;</td>
      <td align="left"  colspan="4">
          <th1>set nline [linecount $comment 50 10]</th1>
          <textarea name="comment" cols="80" rows="$nline" wrap="virtual" class="wikiedit">$<comment></textarea>
      </td>
  </tr>
  <tr>
      <td>&nbsp;</td>
      <td colspan="2">Append Remark with format
          <th1>combobox mutype {{Plain Text} HTML Wiki} 1</th1>
          from
          <input type="text" name="username" value="$<username>" size="30" />:
          <br />
          <textarea name="icomment" cols="80" rows="15" wrap="virtual" class="wikiedit">$<icomment></textarea>
      </td>
  </tr>

  <th1>enable_output [info exists preview]</th1>
  <tr><td colspan="2">
  Description Preview:<br><hr>
  <th1>
  if {$cmutype eq "Wiki"} {
      wiki $comment
  } elseif {$cmutype eq "Plain Text"} {
      set r [randhex]
      wiki "<verbatim-$r>\n[string trimright $comment]\n</verbatim-$r>"
  } else {
      wiki "<nowiki>\n[string trimright $comment]\n</nowiki>"
  }
  </th1>
  <hr>
  </td></tr>
  <tr><td colspan="2">
  Comment Preview:<br><hr>
  <th1>
  if {$mutype eq "Wiki"} {
      wiki $icomment
  } elseif {$mutype eq "Plain Text"} {
      set r [randhex]
      wiki "<verbatim-$r>\n[string trimright $icomment]\n</verbatim-$r>"
  } else {
      wiki "<nowiki>\n[string trimright $icomment]\n</nowiki>"
  }
  </th1>
  <hr>
  </td></tr>
  <th1>enable_output 1</th1>

  <tr>
  <td align="right">
  <input type="submit" name="preview" value="Preview" />
  </td>
  <td align="left">See how the description will appear after formatting.</td>
  </tr>

  <th1>enable_output 1</th1>
  <tr>
  <td align="right">
  <input type="submit" name="submit" value="Submit" />
  </td>
  <td align="left">Apply the changes shown above</td>
  </tr>
  <th1>enable_output 1</th1>

  <tr>
  <td align="right">
  <input type="submit" name="cancel" value="Cancel" />
  </td>
  <td>Abandon this edit</td>
  </tr>
  <th1>
  set seenRow 0
  query {
      SELECT datetime(tkt_mtime) AS xdate,
             login               AS xlogin,
             mimetype            AS xmimetype,
  	   icomment            AS xcomment,
             username            AS xusername
      FROM  ticketchng
      WHERE tkt_id = $tkt_id
      AND   length(icomment) > 0
      ORDER BY tkt_mtime DESC
  } {
    if {$seenRow} {
      html "<hr>\n"
    } else {
      html "<tr><td class='tktDspLabel' valign='top'>User Comments:</td>\n"
      html "    <td colspan='3' class='tktDspValue'>\n"
      set seenRow 1
    }
    if {[info exists showfields]} {
      html "<ul><p>date=$xdate<br>login=$xlogin<br>user=$xusername<br>mime=$xmimetype<br>comment=$xcomment</p></ul>"
    }
    html "[htmlize $xlogin]"
    if {$xlogin ne $xusername && [string length $xusername]>0} {
      html " (claiming to be [htmlize $xusername])"
    }
    html " added on $xdate:\n"
    if {$xmimetype eq "text/plain"} {
      set r [randhex]
      wiki "<verbatim-$r>[string trimright $xcomment]</verbatim-$r>\n"
    } elseif {$xmimetype eq "text/x-fossil-wiki"} {
      wiki "<p>\n[string trimright $xcomment]\n</p>\n"
    } elseif {$xmimetype eq "text/html"} {
      wiki "<p><nowiki>\n[string trimright $xcomment]\n</nowiki>\n"
    } else {
      set r [randhex]
      wiki "<verbatim-$r links>[string trimright $xcomment]</verbatim-$r>\n"
    }
  }
  if {$seenRow} {html "</td></tr>\n"}
  </th1>
  </table>


name: ticket-reportlist
value:
  <th1>
  if {[hascap n]} {
      html "<p>Enter a new ticket:</p>"
      html "<ul><li><a href='tktnew'>New ticket</a></li></ul>"
  }
  </th1>

  <p>Choose a report format from the following list:</p>
  <ol>
  <th1>html $report_items</th1>
  </ol>

  <th1>
  if {[hascap t q]} {
      html "<p>Other options:</p>\n<ul>\n"
      if {[hascap t]} {
          html "<li><a href='rptnew'>New report format</a></li>\n"
      }
      if {[hascap q]} {
          html "<li><a href='modreq'>Tend to pending moderation requests</a></li>\n"
      }
  }
  </th1>


name: ticket-report-template
value:
  SELECT
  CASE WHEN status='Open'    THEN '#f2dcdc'
       WHEN status='Deleted' THEN '#bde5d6'
       WHEN status='Pending' THEN '#cacae5'
       WHEN status='Closed'  THEN '#c8c8c8'
       ELSE                       '#ffffff'
  END AS 'bgcolor',
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket


# reportfmt

owner: ticket-master
title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Open
  #bde5d6 Deleted
  #cacae5 Pending
  #c8c8c8 Closed

sqlcode:
  SELECT
  CASE WHEN status='Open'    THEN '#f2dcdc'
       WHEN status='Deleted' THEN '#bde5d6'
       WHEN status='Pending' THEN '#cacae5'
       WHEN status='Closed'  THEN '#c8c8c8'
       ELSE '#ffffff'
  END AS 'bgcolor',
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket


owner: ticket-master
title: All Open By Category
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  ORDER BY subsystem, tkt_mtime DESC


owner: ticket-master
title: All Open By Type
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  ORDER BY type, tkt_mtime DESC


owner: ticket-master
title: All Open
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  ORDER BY tkt_mtime DESC


owner: ticket-master
title: Most Stale
cols:
  #ffffff Key:
  #f2dcdc Open
  #bde5d6 Deleted
  #cacae5 Pending
  #c8c8c8 Closed

sqlcode:
  SELECT
  CASE WHEN status='Open'    THEN '#f2dcdc'
       WHEN status='Deleted' THEN '#bde5d6'
       WHEN status='Pending' THEN '#cacae5'
       WHEN status='Closed'  THEN '#c8c8c8'
       ELSE '#ffffff'
  END AS 'bgcolor',
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status NOT IN ('Closed', 'Deleted')
  ORDER BY tkt_mtime
  LIMIT 50


owner: ticket-master
title: Pending Tickets
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  resolution            AS 'Resolution',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Pending'
  ORDER BY tkt_mtime DESC


owner: ticket-master
title: Recently Changed
cols:
  #ffffff Key:
  #f2dcdc Open
  #bde5d6 Deleted
  #cacae5 Pending
  #c8c8c8 Closed

sqlcode:
  SELECT
  CASE WHEN status='Open'    THEN '#f2dcdc'
       WHEN status='Deleted' THEN '#bde5d6'
       WHEN status='Pending' THEN '#cacae5'
       WHEN status='Closed'  THEN '#c8c8c8'
       ELSE '#ffffff'
  END AS 'bgcolor',
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  ORDER BY tkt_mtime DESC
  LIMIT 50


owner: ticket-master
title: Open Bug Tickets
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  AND   type   = 'Bug'
  ORDER BY tkt_mtime DESC


owner: ticket-master
title: Open Support Tickets
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  AND   type   = 'Support'
  ORDER BY tkt_mtime DESC


owner: ticket-master
title: Open Patch Tickets
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  AND   type   = 'Patch'
  ORDER BY tkt_mtime DESC


owner: ticket-master
title: Open RFE Tickets
sqlcode:
  SELECT
  substr(tkt_uuid,1,10) AS '#',
  datetime(tkt_mtime)   AS 'Last Changed',
  type                  AS 'Type',
  status                AS 'Status',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary'
  FROM ticket
  WHERE status = 'Open'
  AND   type   = 'RFE'
  ORDER BY tkt_mtime DESC


owner: aku
title: Bugs-Open-Prio-Changed
cols:
  #ffffff Key:
  #f2dcdc prio9
  #e8e8bd prio8
  #cfe8bd prio7
  #cacae5 prio6
  #c8c8c8 prio5-

sqlcode:
  SELECT
  CASE WHEN priority LIKE '9%' THEN '#f2dcdc'
         WHEN priority LIKE '8%' THEN '#e8e8bd'
         WHEN priority LIKE '7%' THEN '#cfe8bd'
         WHEN priority LIKE '6%' THEN '#cacae5'
         ELSE '#c8c8c8' END as 'bgcolor',
  substr(tkt_uuid,1,10) AS '#',
  priority              AS 'Prio',
  subsystem             AS 'Subsystem',
  title                 AS 'Summary',
  datetime(tkt_mtime)   AS 'Last Changed',
  submitter             AS 'Submitter',
  assignee              AS 'Assignee'
  FROM ticket
  WHERE status = 'Open' AND type = 'Bug'
  ORDER BY priority DESC,tkt_mtime DESC


# event

type: ci
user: hobbs
comment:
  change to require PACKAGE var in TEA to avoid $($@_OBJECTS) substitution that many makes do not like


type: ci
user: hobbs
comment:
  	* tcl.m4: added warnings on Windows, removed RELPATH define and
  	added TCL_LIBS to MAKE_LIB macro.


type: ci
user: hobbs
comment:
  	This import represents 2.0.0, or a new start at attempting to
  	make TEA much easier for C extension developers.

  	**** moved from tclpro project to core tcl project, ****
  	**** renamed to 'tclconfig'                         ****


type: ci
user: hobbs
comment:
  	* tcl.m4 (SC_PUBLIC_TCL_HEADERS, SC_PUBLIC_TK_HEADERS): don't
  	check /usr(/local)/include for includes on Windows when not using
  	gcc


type: ci
user: hobbs
comment:
  	* installFile.tcl (removed):
  	* mkinstalldirs (removed): these aren't really necessary for
  	making TEA work


type: ci
user: hobbs
comment:
  	* tcl.m4: corrected forgotten (UN)SHARED_LIB_SUFFIX and
  	SHLIB_SUFFIX defines for Win.
  	(SC_PATH_X): made this only do the check on unix platforms.


type: ci
user: hobbs
comment:
  	* tcl.m4: made SC_LOAD_TKCONFIG recognize when working with a Tk
  	build dir setup.
  	Added EXTRA_CFLAGS and SHLIB_LD_LIBS substs to SC_CONFIG_CFLAGS.
  	Added XLIBSW onto LIBS when it is defined.
  	Remove TCL_LIBS from MAKE_LIB and correctly use SHLIB_LD_LIBS
  	instead to not rely as much on tclConfig.sh cached info.
  	Moved subst of ${PACKAGE}_LIB_FILE into SC_MAKE_LIB.
  	Add TK_BIN_DIR to paths to find wish in SC_PROG_WISH.
  	These move towards making TEA much more independent of *Config.sh.


type: ci
user: hobbs
comment:
  	* tcl.m4: called AC_MSG_ERROR when SC_TEA_INIT wasn't called first
  	instead of calling it as that inlines it each time in shell code.
  	Changed Windows CFLAGS_OPTIMIZE to use -O2 instead of -Oti.
  	Noted TCL_LIB_VERSIONS_OK=nodots for Windows builds.
  	A few changes to support itcl (and perhaps others):
  	Added support for making your own stub libraries to SC_MAKE_LIB.
  	New SC_PATH_CONFIG and SC_LOAD_CONFIG that take a package name arg
  	and find that ${pkg}Config.sh file.  itk uses this for itcl.


type: ci
user: hobbs
comment:
  	* tcl.m4: made sure that SHLIB_LDFLAGS was set to LDFLAGS_DEFAULT.
  	Removed --enable-64bit support for AIX-4 because it wasn't correct.
  	Added -MT or -MD Windows linker switches to properly support
  	symbols-enabled builds.


type: ci
user: hobbs
comment:
  	* tcl.m4: change all SC_* macros to TEA_*.  The SC_ was for
  	Scriptics, which is no more.  TEA represents a better, independent
  	prefix that won't need changing.
  	Added preliminary mingw gcc support. [Patch #538772]
  	Added TEA_PREFIX macro that handles defaulting the prefix and
  	exec_prefix vars to those used by Tcl if none were specified.
  	Added TEA_SETUP_COMPILER macro that encompasses the AC_PROG_CC
  	check and several other basic AC_PROG checks needed for making
  	executables.  This greatly simplifies user's configure.in files.
  	Collapsed AIX-5 defines into AIX-* with extra checks for doing the
  	ELF stuff on AIX-5-ia64.


type: ci
user: hobbs
comment:
  	Updated TEA_ENABLE_THREADS to take an optional arg to allow
  	switching it on by default (for Thread) and add sanity checking to
  	warn the user if configuring threads incompatibly.


type: ci
user: hobbs
comment:
  	* tcl.m4: Enabled COFF as well as CV style debug info with
  	--enable-symbols to allow Dr. Watson users to see function info.
  	More info on debugging levels can be obtained at:
  	http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_SETUP_COMPILER): removed call to AC_CYGWIN so that
  	we can use autoconf 2.5x as well as 2.13.  This prevents us from
  	being able to warn against the use of cygwin gcc at configure
  	time, but allows autoconf 2.5x, which is what is shipped with most
  	newer systems.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_ENABLE_THREADS): added USE_THREAD_ALLOC define to
  	use new threaded allocatory by default on Unix for Tcl 8.4.
  	(TEA_CONFIG_CFLAGS): corrected LD_SEARCH_FLAGS for FreeBSD-3+.


type: ci
user: hobbs
comment:
  	* tcl.m4: add --enable-symbols=mem option to enable TCL_MEM_DEBUG.
  	Improved AIX 64-bit build support, allow it on AIX-4 as well.
  	Enable 64-bit HP-11 compilation with gcc.
  	Enable 64-bit IRIX64-6 cc build support.
  	Correct FreeBSD thread library linkage.
  	Add OSF1 static build support.
  	Improve SunOS-5 shared build SHLIB_LD macro.


type: ci
user: mdejong
comment:
  	* tcl.m4 (TEA_CONFIG_CFLAGS): Fix build support
  	for mingw, the previous implementation would
  	use VC++ when compiling with mingw gcc. Don't
  	pass -fPIC since gcc always compiles pic code
  	under win32. Change some hard coded cases
  	of gcc to ${CC}.


type: ci
user: hobbs
comment:
  	* tcl.m4: move the CFLAGS definition from TEA_ENABLE_SHARED to
  	TEA_MAKE_LIB because setting too early confuses other AC_* macros.


type: ci
user: hobbs
comment:
  	* tcl.m4: add the CFLAGS definition into TEA_ENABLE_SHARED and
  	make it pick up the env CFLAGS at configure time.


type: ci
user: hobbs
comment:
  	* tcl.m4: check $prefix/lib as well as $exec_prefix/lib when
  	looking for tcl|tkConfig.sh, as this check is done before we would
  	set exec_prefix when the user does not define it.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_SETUP_COMPILER): added default calls to
  	TEA_TCL_EARLY_FLAGS, TEA_TCL_64BIT_FLAGS,
  	TEA_MISSING_POSIX_HEADERS and TEA_BUGGY_STRTOD.


type: ci
user: hobbs
comment:
  	* configure:           Update of TEA spec to (hopefully) simplify
  	* configure.in:        some aspects of TEA by making use of more
  	* Makefile.in:         AC 2.5x features.  Use PACKAGE_NAME (instead
  	* generic/tclsample.c: of PACKAGE) and PACKAGE_VERSION (instead of
  	* tclconfig/tcl.m4:    VERSION) arguments to AC_INIT as the TEA
  	package name and version.
  	Provide a version argument to TEA_INIT - starting with 3.0.
  	Drop all use of interior shell substs that older makefiles didn't
  	like.  Use PKG_* naming convention instead.
  	Move specification of source files and public headers into
  	configure.in with TEA_ADD_SOURCES and TEA_ADD_HEADERS.  These will
  	be munged during ./configure into the right obj file names (no
  	$(SOURCES:.c=.obj) needed).
  	There is almost nothing that should be touched in Makefile.in now
  	for the developer.  May want to add a TEA_ADD_TCL_SOURCES for the
  	RUNTIME_SOURCES that remains.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_ENABLE_THREADS): Make sure -lpthread gets passed on
  	the link line when checking for the pthread_attr_setstacksize
  	symbol. (dejong)


type: ci
user: hobbs
comment:
  	* tcl.m4: (TEA_WITH_CELIB): add --enable-wince and --with-celib
  	options for Windows/CE compilation support.  Requires the
  	Microsoft eMbedded SDK and Keuchel's celib emulation layer.


type: ci
user: hobbs
comment:
  	* tcl.m4: Updated for autoconf 2.5x prereq.
  	Where TCL_WIDE_INT_TYPE would be __int64, defer to the code checks
  	in tcl.h, which also handles TCL_LL_MODIFIER* properly.


type: ci
user: hobbs
comment:
  	* tcl.m4: correct default setting of ARCH for WinCE builds.
  	Correct \ escaping for CE sed macros.


type: ci
user: hobbs
comment:
          * tcl.m4: create a TEA_SETUP_COMPILER_CC the precedes the
          TEA_SETUP_COMPILER macro.  They are split so the check for CC
          occurs before any use of CC.  Also add AC_PROG_CPP to the compiler
          checks.


type: ci
user: hobbs
comment:
  	Use SHLID_LD_FLAGS (instead of SHLID_LDFLAGS) as Tcl does.
  	Only specify the user requested LDFLAGS/CFLAGS in the Makefile,
  	don't mention the _OPTIMIZE/_DEBUG variants.


type: ci
user: hobbs
comment:
  	* configure:
  	* configure.in:
  	* Makefile.in (VPATH): readd $(srcdir) to front of VPATH as the
  	first part of VPATH can get chopped off.
  	Change .c.$(OBJEXT) rule to .c.@OBJEXT@ to support more makes.
  	* tclconfig/tcl.m4: add TEA_ADD_STUB_SOURCES to support libstub
  	generation and TEA_ADD_TCL_SOURCES to replace RUNTIME_SOURCES as
  	the way the user specifies library files.


type: ci
user: hobbs
comment:
  	* Makefile.in:      added TEA_ADD_LIBS, TEA_ADD_INCLUDES and
  	* configure:        TEA_ADD_CFLAGS to configurable parameters with
  	* configure.in:     PKG_* equivs in the Makefile.  This allows the
  	* tclconfig/tcl.m4: user to worry less about actual magic VAR names.
  	Corrected Makefile.in to note that TEA_ADD_TCL_SOURCES requires
  	exact file names.


type: ci
user: hobbs
comment:
  	* tcl.m4: don't require TK_INCLUDES and TCL_INCLUDES to have the
  	DIR_NATIVE vars defined when using private headers on unix.
  	Allow $... to TEA_ADD_SOURCES for constructs like
  	TEA_ADD_SOURCES([\$(WIN_OBJECTS)]), that allow the developer to
  	place more in the Makefile.in.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_PATH_X): check in TK_DEFS for MAC_OSX_TK to see if
  	we are compiling on Aqua.  Add TEA_WINDOWINGSYSTEM var that
  	reflects 'tk windowingsystem' value.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_TCL_64BIT_FLAGS): replace AC_TRY_RUN test with
  	AC_TRY_COMPILE for the long vs. long long check. (kenny)


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_TCL_64BIT_FLAGS): update against core tcl.m4 to
  	define TCL_WIDE_INT_IS_LONG if 'using long'.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_ENABLE_THREADS): force a threaded build when
  	building against a threaded core.
  	(CFLAGS_WARNING): Remove -Wconversion for gcc builds
  	(TEA_CONFIG_CFLAGS): Reorder configure.in for better 64-bit build
  	configuration, replacing EXTRA_CFLAGS with CFLAGS.  [Bug #874058]
  	Update to latest Tcl 8.5 head config settings.
  	Call this TEA version 3.1.


type: ci
user: das
comment:
  	* tcl.m4 (TEA_CONFIG_CFLAGS): Darwin section: brought inline with
  	Tcl 8.5 HEAD config, removed core specific & obsolete settings.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_INIT, TEA_PREFIX): update handling of exec_prefix to
  	work around subdir configures since autoconf only propagates the
  	prefix (not exec_prefix).


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): fixed bug with static build linking to dynamic
  	library in /usr/lib etc instead of linking to static library earlier
  	in search path. [Tcl Bug 956908]
  	Removed obsolete references to Rhapsody.


type: ci
user: hobbs
comment:
  	* tcl.m4: Updates for VC7 compatibility, fixing CFLAGS and LDFLAGS
  	options, using better default -O levels. [Bug 1092952, 1091967]


type: ci
user: hobbs
comment:
  	* tcl.m4: remove cygpath calls to support msys.
  	Update base CE build assumption to "420,ARMV4,ARM,Pocket PC 2003".
  	Make STLIB_LD use $LINKBIN -lib.


type: ci
user: hobbs
comment:
  	* tcl.m4: redo of 2005-01-27 changes to correctly handle paths
  	with spaces.  Win/CE and Win/64 builds now require a prebuilt
  	tclsh to handle conversion to short pathnames.  This is done in
  	the new TEA_PATH_NOSPACE macro.  For Win/CE|64, make CC just the
  	compiler and move the necessary includes to CFLAGS.
  	(TEA_CONFIG_CFLAGS): Add Solaris 64-bit gcc build support.
  	(TEA_PROG_TCLSH, TEA_PROG_WISH): Allow TCLSH_PROG and WISH_PROG to
  	be set in the env and prevent resetting.
  	(TEA_ADD_LIBS): On Windows using GCC (mingw), convert foo.lib
  	args to -lfoo, for use with mingw.
  		*** POTENTIAL INCOMPATABILITY ***
  	Bumped TEA to 3.2.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_ADD_LIBS): don't touch lib args starting with -.
  	(TEA_CONFIG_CFLAGS): only define _DLL for CE in shared build.
  	(TEA_MAKE_LIB): set RANLIB* to : on Windows (it's not needed).


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_CONFIG_CFLAGS): correct 2005-03-17 change to have
  	variant LD_SEARCH_FLAGS for gcc and cc builds.


type: ci
user: dgp
comment:
          * README.txt:   Update reference to "SC_* macros" to "TEA_* macros".
          * tcl.m4:       Incorporated recent improvements in SC_PATH_TCLCONFIG
          and SC_PATH_TKCONFIG into TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG.
          Corrected search path in TEA_PATH_CONFIG and added
          AC_SUBST($1_BIN_DIR) to TEA_LOAD_CONFIG so that packages that load
          the configuration of another package can know where they loaded
          it from.


type: ci
user: das
comment:
  	* tcl.m4 (TEA_PATH_X): for TEA_WINDOWINGSYSTEM == aqua, check if xlib
  	compat headers are available in tkheaders location, otherwise add xlib
  	sourcedir to TK_XINCLUDES.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_TCL_64BIT_FLAGS): use Tcl header defaults for wide
  	int type only on Windows when __int64 is detected as valid.


type: ci
user: das
comment:
  	* tcl.m4: added AC_DEFINE* descriptions (from core tcl.m4) to allow
  	use with autoheader.
  	(Darwin): added configure checks for recently added linker flags
  	-single_module and -search_paths_first to allow building with older
  	tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD.
  	(TEA_MISSING_POSIX_HEADERS): added caching of dirent.h check.
  	(TEA_BUGGY_STRTOD): added caching (sync with core tcl.m4).


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to
  	ensure we can always relocate binaries with install_name_tool.


type: ci
user: das
comment:
  	* tcl.m4: changes to better support framework builds of Tcl and Tk out
  	of the box: search framework install locations for *Config.sh, and if in
  	presence of a framework build, use the framework's Headers and
  	PrivateHeaders directories for public and private includes. [FR 947735]


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_PRIVATE_TCL_HEADERS): add / to finish sed macro
  	(TEA_ENABLE_THREADS): don't check for pthread_attr_setstacksize func


type: ci
user: das
comment:
  	* tcl.m4 (TEA_PRIVATE_TK_HEADERS): add ${TK_SRC_DIR}/macosx to
  	TK_INCLUDES when building against TkAqua.

  	* tcl.m4 (TEA_PATH_X): fixed missing comma in AC_DEFINE


type: ci
user: mdejong
comment:
  	* tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH,
  	TEA_PROG_WISH, TEA_BUILD_WISH):
  	Split confused search for tclsh on PATH and
  	build and install locations into two macros.
  	TEA_PROG_TCLSH and TEA_PROG_WISH search the
  	system PATH for an installed tclsh or wish.
  	The TEA_BUILD_TCLSH and TEA_BUILD_WISH
  	macros determine the name of tclsh or
  	wish in the Tcl or Tk build directory even
  	if tclsh or wish has not yet been built.
  	[Tcl bug 1160114]
  	[Tcl patch 1244153]


type: ci
user: mdejong
comment:
  	* tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH,
  	TEA_PROG_WISH, TEA_BUILD_WISH): Remove
  	TEA_BUILD_TCLSH and TEA_BUILD_WISH because
  	of complaints that it broke the build when
  	only an installed version of Tcl was available
  	at extension build time. The TEA_PROG_TCLSH and
  	TEA_PROG_WISH macros will no longer search the
  	path at all. The build tclsh or installed
  	tclsh shell will now be found by TEA_PROG_TCLSH.


type: ci
user: hobbs
comment:
  	* tcl.m4: *** Update to TEA version 3.3 ***
  	define TEA_WINDOWINGSYSTEM in TEA_LOAD_TKCONFIG.
  	Make --enable-threads the default (users can --disable-threads).
  	Improve AIX ${CC}_r fix to better check existing ${CC} value.
  	Do the appropriate evals to not require the *TOP_DIR_NATIVE vars
  	be set for extensions that use private headers.
  	Make aqua check for Xlib compat headers the same as win32.


type: ci
user: das
comment:
  	* tcl.m4: fixed two tests for TEA_WINDOWINGSYSTEM = "aqua" that should
  	have been for `uname -s` = "Darwin" instead; added some missing quoting.
  	(TEA_PROG_TCLSH, TEA_PROG_WISH): fix incorrect assumption that install
  	location of tclConfig.sh/tkConfig.sh allows to determine the tclsh/wish
  	install dir via ../bin. Indeed tcl/tk can be configured with arbitrary
  	--libdir and --bindir (independent of prefix) and such a configuration
  	is in fact standard with Darwin framework builds. At least now also
  	check ${TCL_PREFIX}/bin resp. ${TK_PREFIX}/bin for presence of tclsh
  	resp. wish (if tcl/tk have been configured with arbitrary --bindir, this
  	will still not find them, for a general solution *Config.sh would need
  	to contain the values of bindir/libdir/includedir passed to configure).


type: ci
user: das
comment:
  	* unix/tcl.m4 (Darwin): add 64bit support, add CFLAGS to SHLIB_LD to
  	support passing -isysroot in env(CFLAGS) to configure (flag can't be
  	present twice, so can't be in both CFLAGS and LDFLAGS during configure),
  	don't use -prebind when deploying on 10.4.
  	(TEA_ENABLE_LANGINFO, TEA_TIME_HANDLER): add/fix caching.


type: ci
user: hobbs
comment:
  	* tcl.m4:  *** Bump to TEA version 3.4 ***
  	Add Windows x64 build support.
  	Remove TEA_PATH_NOSPACE and handle the problem with ""s where
  	necessary - the macro relied on TCLSH_PROG which didn't work for
  	cross-compiles.


type: ci
user: dgp
comment:
          * tcl.m4 (TEA_PUBLIC_*_HEADERS):        Better support for finding
          header files for uninstalled Tcl and Tk.


type: ci
user: das
comment:
  	* tcl.m4: add caching, use AC_CACHE_CHECK instead of AC_CACHE_VAL where
  	possible, consistent message quoting, sync relevant tcl/unix/tcl.m4 HEAD
  	changes and gratuitous formatting differences (notably sunc removal of
  	support for for ancient BSD's, IRIX 4, RISCos and Ultrix by kennykb),
  	Darwin improvements to TEA_LOAD_*CONFIG to make linking work against
  	Tcl/Tk frameworks installed in arbitrary location, change TEA_PROG_*
  	search order (look in *_BIN_DIR parents before *_PREFIX).


type: ci
user: hobbs
comment:
  	* tcl.m4: restore system=windows on Windows.
  	Remove error if 'ar' isn't found (it may not be on Windows).
  	Do not add -lxnet or define _XOPEN_SOURCE on HP-UX by default.
  	Ensure the C|LDFLAGS_DEFAULT gets the fully sub'd value at
  	configure time.


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): for Tk extensions, remove -arch ppc64 from CFLAGS
  	like in the Tk configure, as neither TkAqua nor TkX11 can be built for
  	64bit at present (no 64bit GUI libraries).


type: ci
user: hobbs
comment:
  	* tcl.m4:  *** Bump to TEA version 3.5 ***
  	add C:/Tcl/lib and C:/Progra~1/Tcl/lib dirs to check for
  	*Config.sh on Windows. [Bug 1407544]


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): use makefile variable LDFLAGS_DEFAULT instead of
  	LDFLAGS in SHLIB_LD, to ensure linker flags in sampleextension Makefile
  	are picked up. [Bug 1403343]


type: ci
user: hobbs
comment:
  	* tcl.m4: []-quote AC_DEFUN functions.
  	(TEA_PATH_TKCONFIG): Fixed Windows-specific check for tkConfig.sh.
  	(TEA_MAKE_LIB): Prepend 'lib' for Windows-gcc configs.


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
  	universal builds including x86_64 and for use of -mmacosx-version-min
  	instead of MACOSX_DEPLOYMENT_TARGET. For Tk extensions, remove 64-bit
  	arch flags from CFLAGS like in the Tk configure, as neither TkAqua nor
  	TkX11 can be built for 64-bit at present.


type: ci
user: das
comment:
  	* tcl.m4 (Linux): fix previous change to use makefile variable
  	LDFLAGS_DEFAULT instead of LDFLAGS in SHLIB_LD, to ensure linker
  	flags in sampleextension Makefile are picked up.


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit -arch flag
  	succeeds before enabling 64bit build.


type: ci
user: das
comment:
  	* unix/tcl.m4: ensure CPPFLAGS env var is used when set. [Bug 1586861]
  	(Darwin): add -isysroot and -mmacosx-version-min flags to CPPFLAGS when
  	present in CFLAGS to avoid discrepancies between what headers configure
  	sees during preprocessing tests and compiling tests.


type: ci
user: das
comment:
  previous commit used the AC 2.13 code from tcl core-8-4-branch instead of the AC 2.59 version from HEAD. [Bug 1644655]


type: ci
user: das
comment:
  	* tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible and
  	move (rather than duplicate) -isysroot flags from CFLAGS to CPPFLAGS to
  	avoid errors about multiple -isysroot flags from some older gcc builds.


type: ci
user: hobbs
comment:
  	* tcl.m4 (TEA_PRIVATE_TCL_HEADERS, TEA_PRIVATE_TK_HEADERS): check
  	that the dirs actually have private headers. [Bug 1631922]


type: ci
user: das
comment:
  	* tcl.m4:	replace all direct references to compiler by ${CC} to
  			enable CC overriding at configure & make time.
  	(SunOS-5.1x):	replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by
  			'cc' compiler driver.


type: ci
user: jenglish
comment:
  Use '${CC} -shared' instead of 'ld -Bshareable' to build shared libraries
  on current NetBSDs [#1749251].


type: ci
user: das
comment:
  sync with tcl/unix/tcl.m4: S_IF, reordering, comments marking TEA specific bits, visibility & rpath TEA_CONFIG_CFLAGS checks


type: ci
bgcolor: #d0c0ff
user: das
comment:
  sync with tcl/unix/tcl.m4: AS_IF, reordering, comments marking TEA specific bits, visibility & rpath TEA_CONFIG_CFLAGS checks


type: ci
user: das
comment:
  	* tcl.m4 (Darwin): link shlib with current and compatiblity version
  	flags; look for libX11.dylib when searching for X11 libraries.


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
  	* tcl.m4 (TEA_PATH_TCLCONFIG, TEA_PATH_TKCONFIG): exit with error
  	when tclConfig.sh cannot be found. [Bug #1997760]
  	(TEA_PRIVATE_TCL_HEADERS, TEA_PRIVATE_TK_HEADERS): allow for
  	finding the headers installed in the public areas, e.g. a result of
  	make install-private-headers. [Bug #1631922]


type: ci
bgcolor: #d0c0ff
user: das
comment:
  	* tcl.m4 (Darwin): sync TEA_PRIVATE_TK_HEADERS handling of
  	Tk.framework PrivateHeaders with TEA_PRIVATE_TCL_HEADERS.


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
  	* tcl.m4: in private header check, check for <plat>Port.h instead
  	of Int.h to ensure all private headers are available.


type: ci
bgcolor: #d0c0ff
user: das
comment:
  	* tcl.m4: sync with tdbc tcl.m4 changes
  	(SunOS-5.11): Sun cc SHLIB_LD: use LDFLAGS_DEFAULT instead of LDFLAGS


type: ci
user: jenglish
comment:
  Bug 1960628:
  sampleextension: pkgIndex.tcl.in: use @PACKAGE_NAME@ instead of "Tclsha1"
  tclconfig: tcl.m4: Allow ${SHLIB_SUFFIX} to be overridden at configure-time
  Also fix some comment typos, and an uninitialized variable
  bug-waiting-to-happen.


type: ci
user: nijtmans
comment:
  [Bug 2073255] Tcl_GetString(NULL) doesn't crash on HP-UX
  (this bug report was for Tcl, but holds for TEA as well.)


type: ci
user: jenglish
comment:
  TEA_PUBLIC_TK_HEADERS: Look at ${TK_INCLUDE_SPEC} (found in tkConfig.sh)
  when trying to guess where tk.h might be [Patch 1960628].
  Alos fxi anthoer tyop spotted by stu.


type: ci
bgcolor: #d0c0ff
user: nijtmans
comment:
  Adapt LDFLAGS and LD_SEARCH_FLAGS
  together with SHLIB_LD definition to unbreak building on HPUX.
  Backport other changes from trunk


type: ci
bgcolor: #d0c0ff
user: nijtmans
comment:
  Backport a lot of quoting fixes from tcl8.6/unix/tcl.m4
  Fix determination of CYGPATH for CYGWIN
  With those fixes, itcl and tdbc compile fine with CYGWIN


type: ci
user: hobbs
comment:
          * tcl.m4: remove more vestigial bits from removed platforms.
          Add back SCO_SV-3.2*.
          Remove use of DL_LIBS and DL_OBJS and related baggage - these are
          only needed by the core to support 'load'.
          Allow for macosx in TEA_ADD_SOURCES.
          Correct check for found_xincludes=no in TEA_PATH_UNIX_X.

  	Bump TEA 3.8 tag


type: ci
user: hobbs
comment:
          *** Bump to TEA_VERSION 3.9 ***
          If upgrading from TEA_VERSION 3.8, copy over tcl.m4, change
          TEA_INIT to use 3.9 and reconfigure (ac-2.59+).
          BUILD_${PACKAGE_NAME} will be auto-defined on Windows for
          correct setting of TCL_STORAGE_CLASS.
          TEA_LOAD_CONFIG users should remove the SHLIB_LD_LIBS setting done
          in configure.in (LIBS will be automagically populated by
          TEA_LOAD_CONFIG).
          TEA_EXPORT_CONFIG has been added for ${pkg}Config.sh creators
          SHLIB_LD_FLAGS was deprecated a while ago, remove it if it is
          still in your Makefile.in.

          * tcl.m4: add /usr/lib64 to set of auto-search dirs. [Bug 1230554]
          Auto-define BUILD_$PACKAGE_NAME so users don't need to.  This
          needs to correspond with $pkg.h define magic for TCL_STORAGE_CLASS.
          Auto-define CLEANFILES.  Users can expand it.
          (SHLIB_LD_LIBS): define to '${LIBS}' default and change it only if
          necessary.  Platforms not using this may simply not work or have
          very funky linkers.
          (TEA_LOAD_CONFIG): When loading config for another extension,
          auto-add stub libraries found with TEA_ADD_LIBS.  Eases
          configure.in for modules like itk and img::*.
          (TEA_EXPORT_CONFIG): Add standardized function for exporting a
          ${pkg}Config.sh.  See use by img::* and itcl.


type: ci
user: hobbs
comment:
          (TEA_MAKE_LIB): Enhanced to check for MSVC that requires manifests
          and auto-embed it into proj DLL via MAKE_SHARED_LIB.  Also define
          VC_MANIFEST_EMBED_DLL and VC_MANIFEST_EMBED_EXE that do the same
          magic in case it is needed for extended TEA projects.


type: ci
user: hobbs
comment:
          * tcl.m4: add TEA_ADD_CLEANFILES macro to make adding cleanfiles
          easier, and add *.exp to CLEANFILES Windows default.


type: ci
user: nijtmans
comment:
  [FREQ #3058486] TEA_LOAD_CONFIG doesn't set all BUILD_ vars
  Slightly related: defining BUILD_$1 on all platforms - not only win -
  allows the -fvisibility feature to be used in extensions as well, at
  least if you compile against tcl >= 8.5.


type: ci
user: hobbs
comment:
          * tcl.m4: add extra if check for .manifest file generation
          Add notice about package name and version being built.


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
          * tcl.m4: remove the following old platform configurations:
          UNIX_SV*|UnixWare-5*, SunOS-4.*, SINIX*5.4*, SCO_SV-3.2*,
          OSF1-1.*, NEXTSTEP-*, NetBSD-1.*|FreeBSD-[[1-2]].*, MP-RAS-*,
          IRIX-5.*, HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*, dgux*,
          BSD/OS-2.1*|BSD/OS-3*


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
          *** Bump to TEA_VERSION 3.8 ***
          If upgrading from TEA_VERSION 3.7, copy over tcl.m4, change
          TEA_INIT to use 3.8 and reconfigure (ac-2.59+).
          No other changes should be necessary.


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
          Remove use of DL_LIBS and DL_OBJS and related baggage - these are
          only needed by the core to support 'load'.


type: ci
bgcolor: #d0c0ff
user: hobbs
comment:
          Allow for macosx in TEA_ADD_SOURCES.
          Correct check for found_xincludes=no in TEA_PATH_UNIX_X.


type: ci
user: hobbs
ecomment:
  	This import represents 2.0.0, or a new start at attempting to
  	make TEA much easier for C extension developers.

  	**** moved from tclpro project to core tcl project, ****
  	**** renamed to 'tclconfig'                         ****

comment:
  	This import represents 2.0.0, or a new start at attempting to
  	make TEA much easier for C extension developers.

  	**** moved from tclpro project to core tcl project, ****
  	**** renamed to 'tclconfig'                         ****


type: g
user: kbk
comment:
  Edit [734c1bda3ffb45c0|734c1bda3f]: Change branch background color to "#d0c0ff". Edit check-in comment.


type: ci
user: jan.nijtmans
ecomment:
  [Bug 3511806] Compiler checks too early
  This change allows to build the cygwin and mingw32 ports of
  Tcl/Tk extensions to build out-of-the-box using a native or
  cross-compiler, e.g. on Cygwin, Linux or Darwin.

comment:
  [Bug 3511806] Compiler checks too early
  This change allows to build the cygwin and mingw32 ports of
  Tcl/Tk extensions to build out-of-the-box using a native or
  cross-compiler.


type: ci
user: jan.nijtmans
comment:
  Fix for [3f2849aefcd09a] (ahum): square brackets must be doubled, otherwise they will be eliminated in the configure script :-)


type: ci
user: jan.nijtmans
comment:
  Eliminate NO_VIZ macro as current zlib uses HAVE_HIDDEN in stead. 
  One more fix for FreeBSD by Pietro Cerutti


type: ci
user: jan.nijtmans
comment:
  Use X11/Xlib.h for checking where X11 can be found in stead of X11/XIntrinsic.h. 
  Suggested by Pietro Cerutti.


type: t
user: sf-robot
brief: Closed ticket [554348ffffffffff|554348ffff].
comment:
  Closed ticket [554348ffffffffff|554348ffff]: <i>spaces in paths break stuff - TEA</i> plus 6 other changes


type: t
user: davygrvy
brief: Ticket [1055668fffffffff|1055668fff]: 4 changes
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported internals from tclInt.h (EXTERN macro)</i> status still Open with 4 other changes


type: t
user: rebum
brief: Ticket [1636685fffffffff|1636685fff]: 4 changes
comment:
  Ticket [1636685fffffffff|1636685fff] <i>FreeBSD&#39;s ld does not understand -pthread</i> status still Open with 4 other changes


type: t
user: stwo
brief: Open ticket [3554282fffffffff|3554282fff].
comment:
  Open ticket [3554282fffffffff|3554282fff]: <i>Checkin [30736d63f0] broke CFLAGS</i> plus 4 other changes


type: t
user: mthuurne
brief: Ticket [3181878fffffffff|3181878fff]: 4 changes
comment:
  Ticket [3181878fffffffff|3181878fff] <i>tclConfig.h not installed on Mac OS X</i> status still Closed with 4 other changes


type: t
user: hobbs
brief: Pending ticket [947735ffffffffff|947735ffff].
comment:
  Pending ticket [947735ffffffffff|947735ffff]: <i>TEA: better MacOSX defaults</i> plus 7 other changes


type: t
user: kennykb
brief: Ticket [1055668fffffffff|1055668fff]: 5 changes
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported internals from tclInt.h (EXTERN macro)</i> status still Open with 5 other changes


type: t
user: nijtmans
brief: Closed ticket [1055668fffffffff|1055668fff].
comment:
  Closed ticket [1055668fffffffff|1055668fff]: <i>removal of exported internals from tclInt.h (EXTERN macro)</i> plus 7 other changes


type: t
user: davygrvy
brief: Ticket [1055668fffffffff|1055668fff]: 4 changes
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported privates from tclInt.h (EXTERN macro)</i> status still Open with 4 other changes


type: t
user: dgp
brief: Closed ticket [1245329fffffffff|1245329fff].
comment:
  Closed ticket [1245329fffffffff|1245329fff]: <i>TEA_PUBLIC_TCL_HEADERS: uninstalled Tcl</i> plus 8 other changes


type: t
user: stwo
brief: Closed ticket [3555058fffffffff|3555058fff].
comment:
  Closed ticket [3555058fffffffff|3555058fff]: <i>Checkin [30736d63f0] broke CFLAGS_DEFAULT, LDFLAGS_DEFAULT</i> plus 7 other changes


type: t
user: mtsullivan
brief: Ticket [875784ffffffffff|875784ffff]: 4 changes
comment:
  Ticket [875784ffffffffff|875784ffff] <i>tclconfig/tcl.m4 fixes for automake 1.8</i> status still Open with 4 other changes


type: t
user: dgp
brief: Ticket [1245329fffffffff|1245329fff]: 4 changes
comment:
  Ticket [1245329fffffffff|1245329fff] <i>TEA_PUBLIC_TCL_HEADERS: uninstalled Tcl</i> status still Open with 4 other changes


type: t
user: roflz
brief: Ticket [3598299fffffffff|3598299fff]: 4 changes
comment:
  Ticket [3598299fffffffff|3598299fff] <i>unix: tcl does not create non-versioned symlinks for dso</i> status still Open with 4 other changes


type: t
user: stwo
brief: New ticket [3555058fffffffff|3555058fff].
comment:
  New ticket [3555058fffffffff|3555058fff] <i>Checkin [30736d63f0] broke CFLAGS_DEFAULT, LDFLAGS_DEFAULT</i>.


type: t
user: nijtmans
brief: Ticket [1432696fffffffff|1432696fff]: 4 changes
comment:
  Ticket [1432696fffffffff|1432696fff] <i>TEA needs -ltk before -ltcl</i> status still Pending with 4 other changes


type: t
user: dgp
brief: Ticket [1230554fffffffff|1230554fff]: 4 changes
comment:
  Ticket [1230554fffffffff|1230554fff] <i>Add /usr/lib64 to tclconfig search path</i> status still Open with 4 other changes


type: t
user: das
brief: Closed ticket [3181878fffffffff|3181878fff].
comment:
  Closed ticket [3181878fffffffff|3181878fff]: <i>tclConfig.h not installed on Mac OS X</i> plus 7 other changes


type: t
user: dgp
brief: Open ticket [554348ffffffffff|554348ffff].
comment:
  Open ticket [554348ffffffffff|554348ffff]: <i>spaces in paths break stuff - TEA</i> plus 4 other changes


type: t
user: hobbs
brief: Pending ticket [1432696fffffffff|1432696fff].
comment:
  Pending ticket [1432696fffffffff|1432696fff]: <i>TEA needs -ltk before -ltcl</i> plus 3 other changes


type: t
user: gregcouch
brief: Ticket [1720242fffffffff|1720242fff]: 4 changes
comment:
  Ticket [1720242fffffffff|1720242fff] <i>OSF1 udpate for tcl.m4</i> status still Open with 4 other changes


type: t
user: dgp
brief: Ticket [1245329fffffffff|1245329fff]: 5 changes
comment:
  Ticket [1245329fffffffff|1245329fff] <i>TEA_PUBLIC_TCL_HEADERS: unintstalled Tcl</i> status still Open with 5 other changes


type: t
user: dgp
brief: Ticket [936546ffffffffff|936546ffff]: 1 change
comment:
  Ticket [936546ffffffffff|936546ffff] <i>TEA: min Tcl version check</i> status still Open with 1 other change


type: t
user: dgp
brief: Closed ticket [950210ffffffffff|950210ffff].
comment:
  Closed ticket [950210ffffffffff|950210ffff]: <i>TEA_ADD_TCL_SOURCES prevents generated files</i> plus 8 other changes


type: t
user: nijtmans
brief: Closed ticket [3554282fffffffff|3554282fff].
comment:
  Closed ticket [3554282fffffffff|3554282fff]: <i>Checkin [30736d63f0] broke CFLAGS</i> plus 6 other changes


type: t
user: dgp
brief: Ticket [950210ffffffffff|950210ffff]: 5 changes
comment:
  Ticket [950210ffffffffff|950210ffff] <i>TEA_ADD_TCL_SOURCES prevents generated files</i> status still Open with 5 other changes


type: t
user: dkf
brief: Ticket [1055668fffffffff|1055668fff]: 6 changes
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported internals from tclInt.h (EXTERN macro)</i> status still Open with 6 other changes


type: t
user: dgp
brief: Ticket [554348ffffffffff|554348ffff]: 1 change
comment:
  Ticket [554348ffffffffff|554348ffff] <i>spaces in paths break stuff - TEA</i> status still Open with 1 other change


type: t
user: kennykb
brief: Open ticket [1777301fffffffff|1777301fff].
comment:
  Open ticket [1777301fffffffff|1777301fff]: <i>TEA: --exec-prefix not set from --prefix</i> plus 5 other changes


type: t
user: sf-robot
brief: Closed ticket [1077363fffffffff|1077363fff].
comment:
  Closed ticket [1077363fffffffff|1077363fff]: <i>Make pkgIndex.tcl generation include Tcl files</i> plus 6 other changes


type: t
user: jenglish
brief: Ticket [1777301fffffffff|1777301fff]: 4 changes
comment:
  Ticket [1777301fffffffff|1777301fff] <i>TEA: --exec-prefix not set from --prefix</i> status still Open with 4 other changes


type: t
user: das
brief: Closed ticket [947735ffffffffff|947735ffff].
comment:
  Closed ticket [947735ffffffffff|947735ffff]: <i>TEA: better MacOSX defaults</i> plus 8 other changes


type: t
user: hobbs
brief: Ticket [937970ffffffffff|937970ffff]: 4 changes
comment:
  Ticket [937970ffffffffff|937970ffff] <i>TEA: --enable-threads by default ?</i> status still Open with 4 other changes


type: t
user: dkf
brief: Ticket [1055668fffffffff|1055668fff]: 1 change
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported internals from tclInt.h (EXTERN macro)</i> status still Open with 1 other change


type: t
user: ferrieux
brief: Ticket [3554282fffffffff|3554282fff]: 5 changes
comment:
  Ticket [3554282fffffffff|3554282fff] <i>Checkin [30736d63f0] broke CFLAGS</i> status still Open with 5 other changes


type: t
user: nijtmans
brief: Ticket [3058486fffffffff|3058486fff]: 6 changes
comment:
  Ticket [3058486fffffffff|3058486fff] <i>TEA_LOAD_CONFIG doesn&#39;t set all BUILD_ vars</i> status still Open with 6 other changes


type: t
user: jenglish
brief: Ticket [1112654fffffffff|1112654fff]: 4 changes
comment:
  Ticket [1112654fffffffff|1112654fff] <i>Missing eval in configure.in</i> status still Open with 4 other changes


type: t
user: das
brief: Ticket [947735ffffffffff|947735ffff]: 4 changes
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Pending with 4 other changes


type: t
user: dgp
brief: Ticket [3324676fffffffff|3324676fff]: 4 changes
comment:
  Ticket [3324676fffffffff|3324676fff] <i>AC_PROG_INSTALL incompat</i> status still Open with 4 other changes


type: t
user: nijtmans
brief: Ticket [3607702fffffffff|3607702fff]: 5 changes
comment:
  Ticket [3607702fffffffff|3607702fff] <i>Patch to Tclconfig adding support for UnixWare</i> status still Open with 5 other changes


type: t
user: jenglish
brief: Closed ticket [1112654fffffffff|1112654fff].
comment:
  Closed ticket [1112654fffffffff|1112654fff]: <i>Missing eval in configure.in</i> plus 7 other changes


type: t
user: jcw
brief: Ticket [1500979fffffffff|1500979fff]: 4 changes
comment:
  Ticket [1500979fffffffff|1500979fff] <i>pkgIndex.tcl is removed in &quot;make clean&quot;</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Closed ticket [1703170fffffffff|1703170fff].
comment:
  Closed ticket [1703170fffffffff|1703170fff]: <i>TEA_INIT does exact version matching</i> plus 7 other changes


type: t
user: hobbs
brief: Closed ticket [1407544fffffffff|1407544fff].
comment:
  Closed ticket [1407544fffffffff|1407544fff]: <i>TEA 3.4 missing another common tclConfig.sh path</i> plus 7 other changes


type: t
user: stwo
brief: Ticket [3606445fffffffff|3606445fff]: 4 changes
comment:
  Ticket [3606445fffffffff|3606445fff] <i>Unneeded -DHAVE_NO_SEH=1 when not building on Windows</i> status still Open with 4 other changes


type: t
user: mdejong
brief: Ticket [1160114fffffffff|1160114fff]: 4 changes
comment:
  Ticket [1160114fffffffff|1160114fff] <i>TEA_PROG_TCLSH doesn&#39;t check version</i> status still Open with 4 other changes


type: t
user: dkf
brief: Closed ticket [1636685fffffffff|1636685fff].
comment:
  Closed ticket [1636685fffffffff|1636685fff]: <i>FreeBSD&#39;s ld does not understand -pthread</i> plus 6 other changes


type: t
user: hobbs
brief: Closed ticket [1407517fffffffff|1407517fff].
comment:
  Closed ticket [1407517fffffffff|1407517fff]: <i>TEA_CONFIG_CFLAGS does not recognize mingw</i> plus 7 other changes


type: t
user: hobbs
brief: Ticket [1997760fffffffff|1997760fff]: 4 changes
comment:
  Ticket [1997760fffffffff|1997760fff] <i>TEA : configure aborts with a warning but no error</i> status still Open with 4 other changes


type: t
user: sf-robot
brief: Closed ticket [1460182fffffffff|1460182fff].
comment:
  Closed ticket [1460182fffffffff|1460182fff]: <i>TEA_ENABLE_THREADS and pthread_mutex_init</i> plus 6 other changes


type: t
user: hobbs
brief: Ticket [1432696fffffffff|1432696fff]: 4 changes
comment:
  Ticket [1432696fffffffff|1432696fff] <i>TEA needs -ltk before -ltcl</i> status still Open with 4 other changes


type: t
user: dgp
brief: Ticket [950210ffffffffff|950210ffff]: 4 changes
comment:
  Ticket [950210ffffffffff|950210ffff] <i>TEA_ADD_TCL_SOURCES prevents generated files</i> status still Open with 4 other changes


type: t
user: nijtmans
brief: Ticket [3555058fffffffff|3555058fff]: 4 changes
comment:
  Ticket [3555058fffffffff|3555058fff] <i>Checkin [30736d63f0] broke CFLAGS_DEFAULT, LDFLAGS_DEFAULT</i> status still Closed with 4 other changes


type: t
user: mdejong
brief: Closed ticket [1160114fffffffff|1160114fff].
comment:
  Closed ticket [1160114fffffffff|1160114fff]: <i>TEA_PROG_TCLSH doesn&#39;t check version</i> plus 7 other changes


type: t
user: dgp
brief: New ticket [1245329fffffffff|1245329fff].
comment:
  New ticket [1245329fffffffff|1245329fff] <i>TEA_PUBLIC_TCL_HEADERS: no support for unintstalled Tcl</i>.


type: t
user: dgp
brief: Ticket [950210ffffffffff|950210ffff]: 1 change
comment:
  Ticket [950210ffffffffff|950210ffff] <i>TEA_ADD_TCL_SOURCES prevents generated files</i> status still Open with 1 other change


type: t
user: jenglish
brief: Ticket [1460182fffffffff|1460182fff]: 4 changes
comment:
  Ticket [1460182fffffffff|1460182fff] <i>TEA_ENABLE_THREADS and pthread_mutex_init</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Ticket [1540729fffffffff|1540729fff]: 1 change
comment:
  Ticket [1540729fffffffff|1540729fff] <i>TEA_ADD_SOURCE is too aggressiv with dir stripping</i> status still Open with 1 other change


type: t
user: nijtmans
brief: Pending ticket [3554282fffffffff|3554282fff].
comment:
  Pending ticket [3554282fffffffff|3554282fff]: <i>Checkin [30736d63f0] broke CFLAGS</i> plus 8 other changes


type: t
user: sick_soul
brief: Ticket [1241752fffffffff|1241752fff]: 4 changes
comment:
  Ticket [1241752fffffffff|1241752fff] <i>FreeBSD fix for TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG</i> status still Open with 4 other changes


type: t
user: nijtmans
brief: Ticket [1055668fffffffff|1055668fff]: 3 changes
comment:
  Ticket [1055668fffffffff|1055668fff] <i>removal of exported internals from tclInt.h (EXTERN macro)</i> status still Open with 3 other changes


type: t
user: dkf
brief: Ticket [1241752fffffffff|1241752fff]: 1 change
comment:
  Ticket [1241752fffffffff|1241752fff] <i>FreeBSD fix for TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG</i> status still Open with 1 other change


type: t
user: joevalleyfield
brief: Ticket [1252346fffffffff|1252346fff]: 4 changes
comment:
  Ticket [1252346fffffffff|1252346fff] <i>Add framework support to TEA</i> status still Open with 4 other changes


type: t
user: das
brief: Ticket [947735ffffffffff|947735ffff]: 2 changes
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Pending with 2 other changes


type: t
user: hobbs
brief: Closed ticket [1112654fffffffff|1112654fff].
comment:
  Closed ticket [1112654fffffffff|1112654fff]: <i>eliminate double substitution from configure.in</i> plus 6 other changes


type: t
user: hobbs
brief: Ticket [1703170fffffffff|1703170fff]: 4 changes
comment:
  Ticket [1703170fffffffff|1703170fff] <i>TEA_INIT does exact version matching</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Pending ticket [554348ffffffffff|554348ffff].
comment:
  Pending ticket [554348ffffffffff|554348ffff]: <i>spaces in paths break stuff - TEA</i> plus 7 other changes


type: t
user: dkf
brief: Ticket [1636685fffffffff|1636685fff]: 2 changes
comment:
  Ticket [1636685fffffffff|1636685fff] <i>FreeBSD&#39;s ld does not understand -pthread</i> status still Open with 2 other changes


type: t
user: hobbs
brief: Ticket [1946223fffffffff|1946223fff]: 4 changes
comment:
  Ticket [1946223fffffffff|1946223fff] <i>--with-x fails under cygwin</i> status still Open with 4 other changes


type: t
user: dkf
brief: Ticket [1636685fffffffff|1636685fff]: 1 change
comment:
  Ticket [1636685fffffffff|1636685fff] <i>FreeBSD&#39;s ld does not understand -pthread</i> status still Open with 1 other change


type: t
user: jenglish
comment:
  Add attachment [/artifact/a60c88ea665f5461|tcl-1112654.patch] to ticket [1112654fffffffff|1112654fff]


type: t
user: mdejong
comment:
  Add attachment [/artifact/8e724ba4bbe735c1|sampleextension2.patch] to ticket [1160114fffffffff|1160114fff]


type: t
user: sf-robot
brief: Closed ticket [1946223fffffffff|1946223fff].
comment:
  Closed ticket [1946223fffffffff|1946223fff]: <i>--with-x fails under cygwin</i> plus 6 other changes


type: t
user: dkf
brief: Ticket [1230554fffffffff|1230554fff]: 2 changes
comment:
  Ticket [1230554fffffffff|1230554fff] <i>Add /usr/lib64 to tclconfig search path</i> status still Open with 2 other changes


type: t
user: dgp
brief: Ticket [726310ffffffffff|726310ffff]: 1 change
comment:
  Ticket [726310ffffffffff|726310ffff] <i>TEA 2 documentation should include doc recommendation</i> status still Open with 1 other change


type: t
user: davygrvy
brief: New ticket [1055668fffffffff|1055668fff].
comment:
  New ticket [1055668fffffffff|1055668fff] <i>removal of exported privates from tclInt.h (EXTERN macro)</i>.


type: t
user: hobbs
brief: Closed ticket [948498ffffffffff|948498ffff].
comment:
  Closed ticket [948498ffffffffff|948498ffff]: <i>bug tcl8.4.6 -&gt; autoconf -&gt; tcl.m4</i> plus 3 other changes


type: t
user: rmax
brief: Ticket [948498ffffffffff|948498ffff]: 4 changes
comment:
  Ticket [948498ffffffffff|948498ffff] <i>bug tcl8.4.6 -&gt; autoconf -&gt; tcl.m4</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Ticket [1092952fffffffff|1092952fff]: 4 changes
comment:
  Ticket [1092952fffffffff|1092952fff] <i>TEA patch for MSVC7</i> status still Closed with 4 other changes


type: t
user: dgp
brief: Ticket [947735ffffffffff|947735ffff]: 5 changes
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Open with 5 other changes


type: t
user: das
brief: Ticket [947735ffffffffff|947735ffff]: 4 changes
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Open with 4 other changes


type: t
user: dgp
brief: Ticket [554348ffffffffff|554348ffff]: 4 changes
comment:
  Ticket [554348ffffffffff|554348ffff] <i>spaces in paths break stuff - TEA</i> status still Open with 4 other changes


type: t
user: dkf
brief: Ticket [1720242fffffffff|1720242fff]: 1 change
comment:
  Ticket [1720242fffffffff|1720242fff] <i>OSF1 udpate for tcl.m4</i> status still Open with 1 other change


type: t
user: sf-robot
brief: Closed ticket [1540729fffffffff|1540729fff].
comment:
  Closed ticket [1540729fffffffff|1540729fff]: <i>TEA_ADD_SOURCE is too aggressiv with dir stripping</i> plus 6 other changes


type: t
user: dgp
brief: Ticket [1245329fffffffff|1245329fff]: 4 changes
comment:
  Ticket [1245329fffffffff|1245329fff] <i>TEA_PUBLIC_TCL_HEADERS: unintstalled Tcl</i> status still Open with 4 other changes


type: t
user: dkf
brief: Ticket [3181878fffffffff|3181878fff]: 5 changes
comment:
  Ticket [3181878fffffffff|3181878fff] <i>tclConfig.h not installed on Mac OS X</i> status still Open with 5 other changes


type: t
user: sf-robot
brief: Closed ticket [1432696fffffffff|1432696fff].
comment:
  Closed ticket [1432696fffffffff|1432696fff]: <i>TEA needs -ltk before -ltcl</i> plus 6 other changes


type: t
user: jenglish
brief: Ticket [1092952fffffffff|1092952fff]: 4 changes
comment:
  Ticket [1092952fffffffff|1092952fff] <i>TEA patch for MSVC7</i> status still Open with 4 other changes


type: t
user: dgp
brief: Open ticket [1160114fffffffff|1160114fff].
comment:
  Open ticket [1160114fffffffff|1160114fff]: <i>TEA_PROG_TCLSH doesn&#39;t check version</i> plus 6 other changes


type: t
user: dgp
brief: Ticket [1500979fffffffff|1500979fff]: 1 change
comment:
  Ticket [1500979fffffffff|1500979fff] <i>pkgIndex.tcl is removed in &quot;make clean&quot;</i> status still Open with 1 other change


type: t
user: hobbs
brief: Ticket [554348ffffffffff|554348ffff]: 3 changes
comment:
  Ticket [554348ffffffffff|554348ffff] <i>spaces in paths break stuff - TEA</i> status still Pending with 3 other changes


type: t
user: hobbs
brief: Pending ticket [1460182fffffffff|1460182fff].
comment:
  Pending ticket [1460182fffffffff|1460182fff]: <i>TEA_ENABLE_THREADS and pthread_mutex_init</i> plus 7 other changes


type: t
user: hobbs
brief: Pending ticket [1540729fffffffff|1540729fff].
comment:
  Pending ticket [1540729fffffffff|1540729fff]: <i>TEA_ADD_SOURCE is too aggressiv with dir stripping</i> plus 3 other changes


type: t
user: hobbs
brief: Pending ticket [1112654fffffffff|1112654fff].
comment:
  Pending ticket [1112654fffffffff|1112654fff]: <i>eliminate double substitution from configure.in</i> plus 6 other changes


type: t
user: nijtmans
brief: Closed ticket [3607702fffffffff|3607702fff].
comment:
  Closed ticket [3607702fffffffff|3607702fff]: <i>Patch to Tclconfig adding support for UnixWare</i> plus 7 other changes


type: t
user: dgp
brief: Ticket [3607702fffffffff|3607702fff]: 1 change
comment:
  Ticket [3607702fffffffff|3607702fff] <i>Patch to Tclconfig adding support for UnixWare</i> status still Open with 1 other change


type: t
user: hobbs
brief: Pending ticket [1777301fffffffff|1777301fff].
comment:
  Pending ticket [1777301fffffffff|1777301fff]: <i>TEA: --exec-prefix not set from --prefix</i> plus 3 other changes


type: t
user: hobbs
brief: Deleted ticket [1997760fffffffff|1997760fff].
comment:
  Deleted ticket [1997760fffffffff|1997760fff]: <i>TEA : configure aborts with a warning but no error</i> plus 3 other changes


type: t
user: dkf
brief: Ticket [1997760fffffffff|1997760fff]: 5 changes
comment:
  Ticket [1997760fffffffff|1997760fff] <i>TEA : configure aborts with a warning but no error</i> status still Open with 5 other changes


type: t
user: hobbs
brief: Closed ticket [937970ffffffffff|937970ffff].
comment:
  Closed ticket [937970ffffffffff|937970ffff]: <i>TEA: --enable-threads by default ?</i> plus 7 other changes


type: t
user: nijtmans
brief: Ticket [1230554fffffffff|1230554fff]: 4 changes
comment:
  Ticket [1230554fffffffff|1230554fff] <i>Add /usr/lib64 to tclconfig search path</i> status still Closed with 4 other changes


type: t
user: sick_soul
comment:
  Add attachment [/artifact/2fc0eb1bd4967ef7|tcl.m4.freebsd_TEA_PATH_TCLCONFIG_TEA_PATH_TKCONFIG_fix.udiff] to ticket [1241752fffffffff|1241752fff]


type: t
user: hobbs
brief: Pending ticket [1077363fffffffff|1077363fff].
comment:
  Pending ticket [1077363fffffffff|1077363fff]: <i>Make pkgIndex.tcl generation include Tcl files</i> plus 7 other changes


type: t
user: das
brief: Ticket [947735ffffffffff|947735ffff]: 4 changes
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Closed with 4 other changes


type: t
user: dgp
brief: Ticket [1112654fffffffff|1112654fff]: 6 changes
comment:
  Ticket [1112654fffffffff|1112654fff] <i>eliminate double substitution from configure.in</i> status still Open with 6 other changes


type: t
user: stwo
brief: New ticket [3606445fffffffff|3606445fff].
comment:
  New ticket [3606445fffffffff|3606445fff] <i>Unneeded -DHAVE_NO_SEH=1 when not building on Windows</i>.


type: t
user: dgp
brief: Ticket [1241752fffffffff|1241752fff]: 2 changes
comment:
  Ticket [1241752fffffffff|1241752fff] <i>FreeBSD fix for TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG</i> status still Open with 2 other changes


type: t
user: dgp
brief: Ticket [554348ffffffffff|554348ffff]: 5 changes
comment:
  Ticket [554348ffffffffff|554348ffff] <i>spaces in paths break stuff - TEA</i> status still Open with 5 other changes


type: t
user: mdejong
brief: Ticket [1160114fffffffff|1160114fff]: 4 changes
comment:
  Ticket [1160114fffffffff|1160114fff] <i>TEA_PROG_TCLSH doesn&#39;t check version</i> status still Closed with 4 other changes


type: t
user: sf-robot
brief: Closed ticket [1500979fffffffff|1500979fff].
comment:
  Closed ticket [1500979fffffffff|1500979fff]: <i>pkgIndex.tcl is removed in &quot;make clean&quot;</i> plus 6 other changes


type: t
user: hobbs
brief: Pending ticket [1500979fffffffff|1500979fff].
comment:
  Pending ticket [1500979fffffffff|1500979fff]: <i>pkgIndex.tcl is removed in &quot;make clean&quot;</i> plus 7 other changes


type: t
user: dgp
brief: Ticket [937970ffffffffff|937970ffff]: 1 change
comment:
  Ticket [937970ffffffffff|937970ffff] <i>TEA: --enable-threads by default ?</i> status still Open with 1 other change


type: t
user: dgp
brief: Ticket [1077363fffffffff|1077363fff]: 1 change
comment:
  Ticket [1077363fffffffff|1077363fff] <i>Make pkgIndex.tcl generation include Tcl files</i> status still Open with 1 other change


type: t
user: roflz
brief: Open ticket [3598299fffffffff|3598299fff].
comment:
  Open ticket [3598299fffffffff|3598299fff]: <i>unix: tcl does not create non-versioned symlinks for dso</i> plus 4 other changes


type: t
user: lvirden
brief: New ticket [726310ffffffffff|726310ffff].
comment:
  New ticket [726310ffffffffff|726310ffff] <i>TEA 2 documentation should include doc recommendation</i>.


type: t
user: xenu536
brief: Ticket [3607702fffffffff|3607702fff]: 4 changes
comment:
  Ticket [3607702fffffffff|3607702fff] <i>Patch to Tclconfig adding support for UnixWare</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Closed ticket [1230554fffffffff|1230554fff].
comment:
  Closed ticket [1230554fffffffff|1230554fff]: <i>Add /usr/lib64 to tclconfig search path</i> plus 7 other changes


type: t
user: hobbs
brief: Closed ticket [875784ffffffffff|875784ffff].
comment:
  Closed ticket [875784ffffffffff|875784ffff]: <i>tclconfig/tcl.m4 fixes for automake 1.8</i> plus 7 other changes


type: t
user: dgp
brief: Ticket [1112654fffffffff|1112654fff]: 4 changes
comment:
  Ticket [1112654fffffffff|1112654fff] <i>eliminate double substitution from configure.in</i> status still Open with 4 other changes


type: t
user: hobbs
brief: Ticket [948498ffffffffff|948498ffff]: 5 changes
comment:
  Ticket [948498ffffffffff|948498ffff] <i>bug tcl8.4.6 -&gt; autoconf -&gt; tcl.m4</i> status still Open with 5 other changes


type: t
user: hobbs
brief: Ticket [1252346fffffffff|1252346fff]: 1 change
comment:
  Ticket [1252346fffffffff|1252346fff] <i>Add framework support to TEA</i> status still Open with 1 other change


type: t
user: sick_soul
brief: New ticket [1241752fffffffff|1241752fff].
comment:
  New ticket [1241752fffffffff|1241752fff] <i>FreeBSD fix for TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG</i>.


type: t
user: roflz
brief: Ticket [3598299fffffffff|3598299fff]: 1 change
comment:
  Ticket [3598299fffffffff|3598299fff] <i>unix: tcl does not create non-versioned symlinks for dso</i> status still Open with 1 other change


type: t
user: roflz
brief: New ticket [3598299fffffffff|3598299fff].
comment:
  New ticket [3598299fffffffff|3598299fff] <i>unix: tcl does not create non-versioned symlinks for dso</i>.


type: t
user: jenglish
brief: Ticket [1112654fffffffff|1112654fff]: 5 changes
comment:
  Ticket [1112654fffffffff|1112654fff] <i>Missing eval in configure.in</i> status still Open with 5 other changes


type: t
user: sf-robot
brief: Closed ticket [1777301fffffffff|1777301fff].
comment:
  Closed ticket [1777301fffffffff|1777301fff]: <i>TEA: --exec-prefix not set from --prefix</i> plus 6 other changes


type: t
user: dgp
brief: Ticket [1245329fffffffff|1245329fff]: 2 changes
comment:
  Ticket [1245329fffffffff|1245329fff] <i>TEA_PUBLIC_TCL_HEADERS: uninstalled Tcl</i> status still Open with 2 other changes


type: t
user: hobbs
brief: Ticket [1540729fffffffff|1540729fff]: 4 changes
comment:
  Ticket [1540729fffffffff|1540729fff] <i>TEA_ADD_SOURCE is too aggressiv with dir stripping</i> status still Open with 4 other changes


type: t
user: jenglish
comment:
  Add attachment [/artifact/38d21ae8c840eb11|tea-vc7-compat.patch] to ticket [1092952fffffffff|1092952fff]


type: t
user: dgp
brief: Ticket [947735ffffffffff|947735ffff]: 1 change
comment:
  Ticket [947735ffffffffff|947735ffff] <i>TEA: better MacOSX defaults</i> status still Open with 1 other change


type: t
user: hobbs
brief: Pending ticket [1946223fffffffff|1946223fff].
comment:
  Pending ticket [1946223fffffffff|1946223fff]: <i>--with-x fails under cygwin</i> plus 3 other changes


type: t
user: hobbs
brief: Pending ticket [1460182fffffffff|1460182fff].
comment:
  Pending ticket [1460182fffffffff|1460182fff]: <i>TEA_ENABLE_THREADS and pthread_mutex_init</i> plus 2 other changes


type: t
user: nijtmans
brief: Pending ticket [3598299fffffffff|3598299fff].
comment:
  Pending ticket [3598299fffffffff|3598299fff]: <i>unix: tcl does not create non-versioned symlinks for dso</i> plus 10 other changes


type: ci
user: jan.nijtmans
comment:
  Bug [http://core.tcl.tk/tcl/tktview?name=32afa6e256|32afa6e256]: dirent64 check is incorrect in tcl.m4. Thanks to Brian Griffin.


type: ci
user: jan.nijtmans
comment:
  Slightly better solution for [3606445]:  Does the same for EXCEPTION_DISPOSITION and HAVE_WINNT_IGNORE_VOID as well, and skips the test completely.


type: t
user: jan.nijtmans
brief: Closed ticket [3606445fffffffff|3606445fff].
comment:
  Closed ticket [3606445fffffffff|3606445fff]: <i>Unneeded -DHAVE_NO_SEH=1 when not building on Windows</i> plus 9 other changes


type: ci
user: jan.nijtmans
comment:
  Workaround for [http://sourceforge.net/p/mingw/bugs/2065/|MinGW bug #2065]: "gcc --shared" links with libgcc_s_dw2-1.dll when using 64-bit division in C


type: ci
user: jan.nijtmans
comment:
  When compiling with MSVC++, no longer link the stub library with msvcrt??.dll.
  This way, workarounds in extensions like [http://core.tcl.tk/itcl/info/a961f0729c] are no longer necessary.


type: t
user: jan.nijtmans
brief: New ticket [172223e008bd6585|172223e008].
comment:
  New ticket [172223e008bd6585|172223e008] <i>Wrong filename in --disable-shared compile on MinGW</i>.


type: t
user: jan.nijtmans
brief: Closed ticket [172223e008bd6585|172223e008].
comment:
  Closed ticket [172223e008bd6585|172223e008]: <i>Wrong filename in --disable-shared compile on MinGW</i> plus 7 other changes


type: t
user: anonymous
brief: Ticket [00ed054f4fd86af9|00ed054f4f]: 3 changes
comment:
  Ticket [00ed054f4fd86af9|00ed054f4f] <i>Search in Debian per-version directories</i> status still Open with 3 other changes


type: t
user: dkf
brief: Ticket [00ed054f4fd86af9|00ed054f4f]: 4 changes
comment:
  Ticket [00ed054f4fd86af9|00ed054f4f] <i>Search in Debian per-version directories</i> status still Open with 4 other changes


type: ci
user: jan.nijtmans
comment:
  Follow-up to [3324676]: Some TEA makefiles use INSTALL_(DATA|PROGRAM|SCRIPT), which should be provided for compatibility too.


type: t
user: jan.nijtmans
brief: Closed ticket [00ed054f4fd86af9|00ed054f4f].
comment:
  Closed ticket [00ed054f4fd86af9|00ed054f4f]: <i>Search in Debian per-version directories</i> plus 7 other changes


type: t
user: gustafn
brief: Ticket [78ef35454f58d206|78ef35454f]: 4 changes
comment:
  Ticket [78ef35454f58d206|78ef35454f] <i>tcl.m4 uses obsolete macros</i> status still Open with 4 other changes


type: ci
user: jan.nijtmans
comment:
  Cherry-pick [http://core.tcl.tk/tcl/info/a37bbd81ea20b5c8be680b847b91fa920bfc060b|a37bbd81ea] from Tcl, for use in TEA as well: Combine TCL_SHLIB_LD_EXTRAS+TK_SHLIB_LD_EXTRAS (for Cygwin and FreeBSD) to a single SHLIB_LD_LIBS usable for both Tcl and Tk.


type: t
user: stwo
brief: Ticket [604f8d1457d42554|604f8d1457]: 4 changes
comment:
  Ticket [604f8d1457d42554|604f8d1457] <i>Installer improvements</i> status still Open with 4 other changes


type: t
user: stwo
brief: Ticket [604f8d1457d42554|604f8d1457]: 3 changes
comment:
  Ticket [604f8d1457d42554|604f8d1457] <i>Installer improvements</i> status still Open with 3 other changes


type: ci
user: jan.nijtmans
ecomment:
  Add INSTALL_DATA_DIR and INSTALL_LIBRARY for use in Makefile.in. Suggested by Stuart Cassoff [604f8d1457d42554dac1c6f002197442da94a832|604f8d1457]

comment:
  Add INSTALL_DATA_DIR and INSTALL_SCRIPT for use in Makefile.in. Suggested by Stuart Cassoff [604f8d1457d42554dac1c6f002197442da94a832|604f8d1457]


type: ci
user: jan.nijtmans
comment:
  Don't limit Universal runtime support to VisualStudio version 14 only, future versions will probably have it as well.


type: ci
user: jan.nijtmans
comment:
  Fix [http://core.tcl.tk/tcl/info/00189c4afcb9e2586301d711f71383e48817a72d|00189c4afc]: Allow semi-static UCRT build on Windows with VC 14.0


type: ci
user: jan.nijtmans
comment:
  Fix [06f1692bbe29449ac3f2161ebf9dd153d0349845|06f1692bbe]: cross compilation with native mingw compiler in Cygwin environment


type: t
user: pooryorick
brief: New ticket [06f1692bbe29449a|06f1692bbe].
comment:
  New ticket [06f1692bbe29449a|06f1692bbe] <i>cross compilation with native mingw compiler in Cygwin environment</i>.


type: t
user: pooryorick
brief: Ticket [06f1692bbe29449a|06f1692bbe]: 4 changes
comment:
  Ticket [06f1692bbe29449a|06f1692bbe] <i>cross compilation with native mingw compiler in Cygwin environment</i> status still Open with 4 other changes


type: t
user: pooryorick
brief: Ticket [06f1692bbe29449a|06f1692bbe]: 3 changes
comment:
  Ticket [06f1692bbe29449a|06f1692bbe] <i>cross compilation with native mingw compiler in Cygwin environment</i> status still Open with 3 other changes


type: t
user: jan.nijtmans
brief: Closed ticket [06f1692bbe29449a|06f1692bbe].
comment:
  Closed ticket [06f1692bbe29449a|06f1692bbe]: <i>cross compilation with native mingw compiler in Cygwin environment</i> plus 6 other changes


type: t
user: anonymous
comment:
  Add attachment [/artifact/6d01ea51ce2b1ee7|freebsd-tclconfig-tcl.m4] to ticket [fa5e1b3627fd99ef|fa5e1b3627]


type: ci
user: hypnotoad
comment:
  Improvments to practcl to allow for the creation of multiple static or dynamic libraries
  for a project.

  Added several PRACTCL_ defines which allow a practcl enable build script to synthesize
  the instructions needed to compile libraries on the target platform. (MAKE_LIB, etc are
  unchanged)


type: ci
user: hypnotoad
comment:
  Improvements to practcl:

  Updated version to 0.3

  Introduces some platform auto-dectect functions

  Embeds a local copy of zip::mkzip

  Adds a rudimentary build dependency system

  Allows direct compilation of executables, shared libraries, and static libraries

  Allows the downloading, compiling, and embedding of external Tcl binary (and script) packages


type: ci
user: hypnotoad
comment:
  Fixes to practcl.

  Practcl's package-ifneeded method now writes code that wraps properly inside of
  an amaglamated pkgIndex script


type: ci
user: hypnotoad
comment:
  Creating a branch to explore using Tcl for package building automation. This
  project is build around the concepts introduced in the "practcl" package.


type: ci
user: hypnotoad
comment:
  Fixes in the implementation to support odielib. This branch *should* be ready
  for others to start playing with it.


type: ci
user: hypnotoad
comment:
  Modified the kitbuilder to no longer require a seperate KIT array. The data needed
  was already encoded in TCL and TK


type: ci
user: hypnotoad
comment:
  Added an --disable-stubs flag which can be used in conjuction with the --disable-shared
  flag will prevent the USE_TCL_STUBS and USE_TK_STUBS flags from being set


type: ci
user: hypnotoad
comment:
  Added a built-in tool to fill in the gaps provided by autoconf for platforms where
  autoconf is not available.

  Added a mechanism for the tclkit integrator to derive ./configure time information
  from the Makefile for packages where a "practcl.rc" file is not generated.

  The process of substituting DEFS and generating self contained executables are now 
  procedures instead of object methods.

  Added a mechanism for compiled objects to specify their output product's file name.


  Added handlers for compiling and linking C++ code.

  Added hooks to exploit the new static library build features of TEA 3.10

  Incorporated the SUBPACKAGE method defined in IRM to the main practcl library.


  Added several common subpackage component classes to the practcl library

  Added a new export PRACTCL_CFLAGS, which provides a snapshot of the CFLAGS generated by
  autoconf for a package minus the package specific flags


type: ci
user: hypnotoad
comment:
  Based on feedback from the community, changed the "practcl.tcl.in" template to
  "config.tcl.in", and it stores a key/value list instead of a stream of Tcl commands

  Rewrote chunks of practcl to better handle builds in a different directory than the 
  source checkout.

  The kit builder now creates its own build folders for binary packages

  Package objects now compute a builddir on startup

  Replaced calls the the global ::project array with calls to [define get]. (Note:
  make files are still welcome to write to a ::project array. That array is simply
  no longer assumed to be present and populated by most of the practcl library.)


type: ci
user: hypnotoad
comment:
  Added a --with-tclsh option, to allow dynamic build systems to utilize
  a known good Tcl interpreter instead of guessing when generating dynamic content


type: ci
user: hypnotoad
comment:
  Added facilities to build an internal pkgIndex.tcl file for kits

  Added version detection and tracking for static packages, as well
  as a flag to indicate if a package should be automatically loaded
  when the shell initializes


type: ci
user: hypnotoad
comment:
  Adapted the build process such that dynamic C code can decide for itself to be
  compiled as a standalone C file rather than be massed into the main application/library
  loader


type: ci
user: hypnotoad
comment:
  Finally have a working implementation to build shared libraries from Tcl.

  Moved the makefile snippet generator to a proc.

  Added a few more substitutions that the tcl based make system requires


type: ci
user: hypnotoad
comment:
  Tweaked modules and libraries to honor the desire of sub-modules and dynamic sources
  to express themselves as seperate C files


type: ci
user: hypnotoad
comment:
  Adding a new "domake.tcl" which is designed to exercise a practcl tcl make system.

  Behavioral fixes for sub-components which can have elements of the Init() process
  farmed to them

  Added handlers for compiling a library and basekit in debug mode

  Added a mechanism for the build system to compile a different obj file for debug mode

  Added tweaks for Tk extensions

  Fixed the pkgindex.tcl file generator for static libraries.

  Practcl libraries now burn Tcl initialization code into the C library itself, eliminating
  the need for an external tcl file


type: ci
user: hypnotoad
comment:
  Going back to disabling stubs for static libraries. Something in stock
  make files for TEA packages dies horribly on [make all] with --disable-shared
  but -enable-stubs


type: ci
user: hypnotoad
comment:
  Developed a new mechanism for advertising a package, but not invoking its loader.
  The key part is to build a minimalist proc in the tcl interp that can invoke the PROJ_Init
  from the interpreter in response to a "package require".

  We can't use Tcl_StaticPackage, because that assumes the Init call was already loaded


type: ci
user: hypnotoad
comment:
  New version 0.5

  Removed the seperate classes tracking static vs. dynamic binary extensions. They are
  now a single class and the build strategy is determined by the "static" define.

  Created a unified "Configure" method which used by both the config.sh and 
  compile method. It turns out that much of what config.sh needs isn't known until
  autoconf is run.

  Fixed a quoting problem for spaces in -D flags

  Simplified the arguments for ::practcl::build::static-tclsh. We now only need
  to pass the master object, the script can figure out the rest. (For now, so
  long as there are two sub-objects TCLCORE and TKCORE)


type: ci
user: hypnotoad
comment:
  Added a general purpose Tcl script -> constant C string encoder.

  Added a complete zipkit implementation. (We no longer need to go out to odie for 
  hard coded C sources.)

  If zipfs.c is present in the Tcl sources, that is used. If zipfs.c is not present,
  odie is automatically added as a sub-project and the zipfs implementation from
  there is used. (Helpful while we transition from 8.6 -> 8.7)

  The "main" file produced for a zipkit now includes a complete TCL_LOCAL_APPINIT
  and TCL_LOCAL_MAINHOOK implementation, as well as a package index and zipfs 
  mounter. This file is generated at implementation time.

  Re-arranged the kit building process such that dynamically added sources have
  a chance to influence compile flags


type: ci
user: hypnotoad
comment:
  Moved where the IncrRefCount is applied so it happens BEFORE we check for the existence of the init script


type: ci
user: hypnotoad
comment:
  Added the concept of aliases to practcl triggers/depends/targets

  Added a compute flag for dependencies that returns a cached answer to 
  prevent infinite recursion


type: ci
user: hypnotoad
comment:
  Tweaked how option escape characteres are managed

  Added CFLAGS and PKG_CFLAGS to the config.tcl.in substitution template


type: ci
user: hypnotoad
comment:
  Added an AC_SUBST to capture if this extension is a Tk extension

  Added a "fossil_status" command to capture data from fossil (because 
  the standard fossil command redirects stdout)

  Eliminated the internal mkzip implementation, and replaced with a mechanism
  to download a local copy of tcllib

  Added a Tcl->C encoder

  Bootstrap Tcl scripts are now embedded in C rather than distributed as
  a seperate file

  Tweaks to the kitbuilding process

  Added a "Collate_Source" method, which allows a project to generate
  its dynamic sources during the compilation sequence, instead of 
  during initialization of the object

  Created a class to handle behaviors particular to autoconf based
  projects, and split that behavior from the library class.

  Created a new "project" class to act as a high level abstraction for
  projects which may implement both a kit and a dynamic library

  Eliminated the need to have a copy of odie in order to generate a basic kit.

  Added behaviors to exercise a practcl style make.tcl script if present within
  a project.


type: ci
user: hypnotoad
comment:
  Corrected a logic bug in the struct access macros used to pull metadata from
  objects.

  Defined a thisObject variable for every method's implementation which will be
  pre-populated with the current object the method is servicing.

  Macros now refer to thisObject instead of constantly hammering the Tcl_ObjectContextObject()
  function


type: ci
user: hypnotoad
comment:
  Fix to cut down on the number of empty trace comments in generated C code

  Added provisions of private (i.e. static) typedefs and structs in C files

  Moved where verbatim headers are read in from

  Added a the concept of a "pre C loaded" tcl init script and "post C loaded" tcl init script


type: ci
user: hypnotoad
comment:
  Adding support for cross compiling. Practcl now looks for a "CONFIG_SITE" 
  element in the master project's define array. If present, practcl adapts itself
  to perform a cross compile.

  If ::practcl::config.tcl is run, this entry will be automatically created
  if a config.site file is in the directory of the master project build.

  CONFIG_SITE points to a file containing a sh compadible description of the
  cross compiler environment. Practcl will also read and respond to flags in
  this file


type: t
user: anonymous
brief: Ticket [5c9aac9213dc4bc0|5c9aac9213]: 3 changes
comment:
  Ticket [5c9aac9213dc4bc0|5c9aac9213] <i>Update tcl.m4 to include NetBSD install path</i> status still Open with 3 other changes


type: ci
user: hypnotoad
comment:
  Clarified how shells compiled against a core implementing tip#430 should be different
  to those where we are utilizing an external zipfs implemention


type: t
user: hypnotoad
brief: Ticket [5c9aac9213dc4bc0|5c9aac9213]: 5 changes
comment:
  Ticket [5c9aac9213dc4bc0|5c9aac9213] <i>Update tcl.m4 to include NetBSD install path</i> status still Open with 5 other changes


type: t
user: hypnotoad
brief: Closed ticket [5c9aac9213dc4bc0|5c9aac9213].
comment:
  Closed ticket [5c9aac9213dc4bc0|5c9aac9213]: <i>Update tcl.m4 to include NetBSD install path</i> plus 5 other changes


type: ci
user: hypnotoad
comment:
  Eliminated the effort in trying to sanitize compiler flags and replace the PACKAGE_NAME, PACKAGE_VERSION, etc.

  Now we just append -D entries to the end of the block. Needed because many of the quoting fixes to allow Mac to work directly conflict with quoting fixes needed to make MinGW work.


type: ci
user: hypnotoad
comment:
  Bumped version to 0.7

  Added support for Tcl 8.5 by either reimplementing features or providing an alternate
  implementation

  Added a local preference file for storing persistent data

  Removed a lot of chatty PUTS statements

  Creates an object called ::pratcl::LOCAL which stores the local platform data,
  and can act as a project for the purpose of installing local build tools

  Added a facility to load a package from tcllib (and go so far as to install
  a resident tcllib)

  Created a modular plugin architecture for software distribution and 
  local tools


type: ci
user: hypnotoad
comment:
  Removed compiler and toolset detection from [local_os] moved those checks
  (with xcompile aware logic) into config.tcl

  Standardized srcroot -> srcdir

  Added a critcl invoker

  Revamped where projects get tclconfig from

  Added tool handlers for critcl, kettle, and tcllib


type: ci
user: hypnotoad
comment:
  Changed the install-vfs method on subprojects to the install method

  Made the destroot a manditory argument


type: ci
user: hypnotoad
comment:
  Fixed a goof in the TEA_CONFIG_TEAPOT mechanism. It wasn't checking that TEA_CONFIG_SYSTEM
  had run first


type: ci
user: hypnotoad
comment:
  Fixed a problem with the Package index maker

  Fixed a problem with the {package ifneeded} generated for a static library

  Removed several chatty PARRAY lines


type: ci
user: hypnotoad
comment:
  Fixed the routine that was supposed to be converting .lib files to -l flags

  Fixed how TEA platform strings and architectures are computed during cross
  compiles


type: ci
user: hypnotoad
comment:
  Adding provisions to support multiple tool chains

  GCC style implemented as the first, with an empty implemenation intended
  for MSVC


type: ci
user: hypnotoad
comment:
  Practcl 0.8a1

  The prefix for zip volumes is now selectable at compile time. The default has
  been changed to //zipfs:, based on feedback from Christian Werner and Roy Keene

  Users can select the sandbox location per-project now with the ::practcl::config
  array (which also allows other parameters to be modified). These changes have
  to be present in memory before ::practcl::config.tcl is called

  ::practcl::LOCAL defers as long as possible before instantiating itself.


type: t
user: mr_calvin
brief: New ticket [ab69a602bfb5efc4|ab69a602bf].
comment:
  New ticket [ab69a602bfb5efc4|ab69a602bf] <i>MSVC rules.vc: Set HAVE_UINTPTR_T &amp;  HAVE_INTPTR_T</i>.


type: t
user: mr_calvin
brief: Ticket [ab69a602bfb5efc4|ab69a602bf]: 4 changes
comment:
  Ticket [ab69a602bfb5efc4|ab69a602bf] <i>MSVC rules.vc: Set HAVE_UINTPTR_T &amp;  HAVE_INTPTR_T</i> status still Open with 4 other changes


type: t
user: mr_calvin
brief: Ticket [ab69a602bfb5efc4|ab69a602bf]: 3 changes
comment:
  Ticket [ab69a602bfb5efc4|ab69a602bf] <i>MSVC rules.vc: Set HAVE_UINTPTR_T &amp;  HAVE_INTPTR_T</i> status still Open with 3 other changes


type: ci
user: hypnotoad
comment:
  Fixes to the build process for shells that statically link Tk (and generally require
  access to the Tk headers)

  Fixed a typo


type: ci
user: hypnotoad
comment:
  Added a mechanism to allow the distribution of binary extensions via kits without
  invoking the Tcl built-in behavior of unpacking dlls to a temporary location for each process

  Any kits that contain a "teapot" directory will copy the contents to a designated path in the
  users' home directory, and run the packages from there.


type: ci
user: hypnotoad
comment:
  Removing "inline" from headers, and placing that information in the C source files. The behavior of "extern inline" is well into the realm of dragons when trying to reconcile gcc and clang


type: ci
user: jan.nijtmans
comment: On OpenBSD, make SHLIB_VERSION default to ".1.0" if not specified (as in Tcl/Tk's tcl.m4)
ecomment:
  On OpenBSD, make SHLIB_VERSION default to ".1.0" if not specified (as in Tcl/Tk's tcl.m4)

  No,that's wrong.
  It was the way it was for a reason.
  I purposely set it up that way.
  Tcl/Tk's tcl.m4 is not the same as TEA's Tcl.m4 (as I said before).
  Why don't you ask me before doing things?
  Bro, do you even OpenBSD?
  Not happy at all, here.


type: g
user: jan.nijtmans
comment:
  Edit [5dd2f839c64f49f3|5dd2f839c6]: Move to branch [/timeline?r=mistake&nd&dp=5dd2f839c64f49f3&unhide | mistake]. Mark "Closed".


type: ci
user: hypnotoad
comment:
  Modified the names of several methods to make it clearer 
  what is going on in the notation

  generate-cmethod -> generate-tcl_c_api

  cmethod -> c_tcloomethod

  c_tclproc_raw > c_tclcmd

  Aliases for cmethod and c_tcl_proc raw have been kept to allow
  old practcl build to continue to work


type: ci
user: hypnotoad
comment:
  More enhancements for debugging builds

  Added names to practcl managed TclObjTypes

  Each sub-project gets the name of the Tcl interpreter that called practcl as a --with-tclsh option

  Added "clean" mechanisms for practcl managed builds

  Created a seperate code checkout sandbox for Tcl and Tk when So that the switch between dubbing and 
  normal builds is seemless

  Added an additional pattern match for static compiled Tcl shells on Windows under MSYS/MinGW


type: ci
user: hypnotoad
comment:
  Added a dedicated library handler which allows a module to be pure code (as opposed to a compile product.)


type: ci
user: hypnotoad
comment:
  Adaptations to non tip 430 kit builds to use a version of zipfs which is featureset compatible with tip430


type: ci
user: jan.nijtmans
comment: x
ecomment:
  Fix [http://core.tcl.tk/tcl/info/4f51e1c5dcf75de22f5907f7b66361e4bcab02e2|4f51e1c5dc]: patch to correct linker flag sequence


type: t
user: stu
brief: Open ticket [1703170fffffffff|1703170fff].
comment:
  Open ticket [1703170fffffffff|1703170fff]: <i>TEA_INIT does exact version matching</i> plus 9 other changes


type: ci
user: stu
comment:
  Move INSTALL_* setup from TEA_SETUP_COMPILER_CC (doesn't really belong there) to TEA_INIT so they will be available for non-compiled extensions as well. Remove another TEA version comment.


type: ci
user: hypnotoad
comment:
  Update version to 4.0. Added an implementation of tclzipfs.c in the compat/ directory.
  Updated the practcl library


type: ci
user: hypnotoad
comment:
  New version of practcl.tcl from tcllib.

  New version of the tclZipfs.c file. Now an identical file is checked into 
  set core itself.


type: ci
user: hypnotoad
comment:
  Removed the TEA_TCL_LINK_LIBS macro. It wasn't being used, and had the potential
  to introduce dependencies that weren't called for in the tclConfig.sh file


type: ci
user: hypnotoad
comment:
  Added facilities to mount data blocks as zip archives

  Updated practcl from tcllib with new headers for non tip430 kits


type: ci
user: hypnotoad
comment:
  Added a substitution to config.tcl.in to capture Tea's prefered name for 
  the zip archive the package will produce.

  New version of practcl from tcllib

  Update from the core of tclZipfs.c to fix windows platform compile problems


type: t
user: dgp
brief: Ticket [7b67203bbcb5e58b|7b67203bbc]: 3 changes
comment:
  Ticket [7b67203bbcb5e58b|7b67203bbc] <i>take libieee.a search out of TEA_TCL_LINK_LIBS</i> status still Open with 3 other changes


type: ci
user: jan.nijtmans
comment:
  Remove TEA_MISSING_POSIX_HEADERS for the same reason as TEA_TCL_LINK_LIBS: The C flags determined should come in through tclConfig.sh


type: t
user: hypnotoad
brief: Ticket [7b67203bbcb5e58b|7b67203bbc]: 4 changes
comment:
  Ticket [7b67203bbcb5e58b|7b67203bbc] <i>take libieee.a search out of TEA_TCL_LINK_LIBS</i> status still Open with 4 other changes


type: ci
user: stu
comment:
  Align common install locations in TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG.
  Add FreeBSD and OpenBSD paths.


type: ci
user: jan.nijtmans
ecomment:
  Minor fix in search oder for Tcl/Tk installations, and implement similar paths to search for in TEA_PATH_CONFIG too.

  Stu adds:
  I believe this is incorrect. The tcl/tk paths should not be searched. TEA_PATH_CONFIG is for extensions, not tcl/tk. Extensions should not be putting their *Config.sh files in tcl/tk dirs. I didn't change anything here because I saw nothing needed changing; I didn't forget or omit.

  Was the order changed because the order was problematic?

comment:
  Minor fix in search oder for Tcl/Tk installations, and implement similar paths to search for in TEA_PATH_CONFIG too.


type: ci
user: jan.nijtmans
ecomment:
  Undo TEA_PATH_CONFIG changes regarding addtional paths until it's more clear where OpenBSD/FreeBSD stores it's 'official' itclConfig.sh/tdbcConfig.sh.
  Fix [923f400aa03a5608]: New paths required for Darwin

  Stu adds: This has nothing to do with where any one os stores itcl/itkConfig.sh.

  It shouldn't matter to *tclconfig* where any anything stores anything, should it?

  This is supposed to be a generic routine, used to pick up the *Config.sh of any extension.

  There is no "common store" for *Config.sh files on any platform, afaict.
  Extensions currently keep their *Config.sh files in their own dirs. I believe this to be the case currently for all extensions and platforms.
  Perhaps changing this convention is a good idea.

  The way things are currently, adding dirs for itcl would then mean adding dirs fors tdbc, tdom, etc.?
  I don't see that as being viable in the long-term.

comment:
  Undo TEA_PATH_CONFIG changes regarding addtional paths until it's more clear where OpenBSD/FreeBSD stores it's 'official' itclConfig.sh/tdbcConfig.sh.
  Fix [923f400aa03a5608]: New paths required for Darwin


type: t
user: jan.nijtmans
brief: Closed ticket [b8866544134a9a77|b886654413].
comment:
  Closed ticket [b8866544134a9a77|b886654413]: <i>TEA_INIT does not detect  MINGW64_NT as windows</i> plus 5 other changes


type: t
user: jan.nijtmans
brief: Closed ticket [923f400aa03a5608|923f400aa0].
comment:
  Closed ticket [923f400aa03a5608|923f400aa0]: <i>New paths required for Darwin</i> plus 6 other changes


type: t
user: pooryorick
brief: Pending ticket [0d56ddedbebef31d|0d56ddedbe].
comment:
  Pending ticket [0d56ddedbebef31d|0d56ddedbe]: <i>CFLAGS broken at configure time</i> plus 4 other changes


type: t
user: jan.nijtmans
brief: Ticket [0d56ddedbebef31d|0d56ddedbe]: 4 changes
comment:
  Ticket [0d56ddedbebef31d|0d56ddedbe] <i>CFLAGS broken at configure time</i> status still Pending with 4 other changes


type: t
user: pooryorick
brief: Closed ticket [0d56ddedbebef31d|0d56ddedbe].
comment:
  Closed ticket [0d56ddedbebef31d|0d56ddedbe]: <i>CFLAGS broken at configure time</i> plus 4 other changes


type: ci
user: hypnotoad
comment:
  Modifications to skip threading checks (that no longer work) for tcl 8.7+ and just assume
  threading for the purposes of comparing what the package wants.


type: t
user: jan.nijtmans
brief: Open ticket [0d56ddedbebef31d|0d56ddedbe].
comment:
  Open ticket [0d56ddedbebef31d|0d56ddedbe]: <i>CFLAGS broken at configure time</i> plus 5 other changes


type: ci
user: hypnotoad
comment:
  Fixed a typo in practcl. Tweak to ensure inside of the practcl::module class that the 
  make_object dict exists


type: ci
user: sebres
comment:
  fixes configure error "Windows/CE and GCC builds incompatible" as well as proper tcl_platform (if cross-compiled in unix) by mingw build.


type: ci
user: sebres
comment:
  mingw cross-compile: fix 2nd mistake - invalid tcl_platform retrieved, resp. overwritten if cross-compiled in unix (tcl_platform should be windows in mingw)


type: ci
user: sebres
comment:
  fix cross-compile build for windows(mingw) from *nix: set default wince to off for all platforms exepting windows, take care the option (--enable-wince/--disable-wince)


type: g
user: sebres
comment:
  Edit [66ccb875783ea6e6|66ccb87578]: Move to branch [/timeline?r=sebres-fix-cross-comp-mingw&nd&dp=66ccb875783ea6e6&unhide | sebres-fix-cross-comp-mingw].


type: ci
user: jan.nijtmans
comment:
  Remove support for Windows CE. It doesn't work anyway (since it's already unsupported for a long time, even by Microsoft)


type: ci
user: jan.nijtmans
ecomment:
  Don't use -prebind option on MacOSX any more: was only needed for OSX < 10.4, which is no longer supported (2005!!!)

comment:
  Don't use --prebind options on MacOSX any more: was only needed for OSX < 10.4, which is no longer supported (2005!!!)


type: ci
user: sebres
comment:
  integrate msys-windows-fix: fix system recognition for some msys toolchains (providing uname -s = MSYS_NT-10.0)


# attachment

src: 550dbfbe9ba72031142e8ffea371144f4260c5ff
target: 78ef35454f58d206a479c67d578d4a00983d230f
filename: tcl-m4.patch
user: gustafn
comment:
  The attached patch fixes most of the issues. The only warnings are generated now from TEA_TCL_EARLY_FLAG which i did not dare to alter due to missing knowledge about its intended semantics.


# ticket

tkt_uuid: 554348ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.4a4
title: spaces in paths break stuff - TEA
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: sf-robot
closedate: 2006-04-13T02:20:11
comment:
  The TEA build stuff used by sampleextension also
  has problems dealing with spaces in paths.  Here's
  a patch.


tkt_uuid: 1055668fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: removal of exported internals from tclInt.h (EXTERN macro)
cmimetype: text/plain
submitter: davygrvy
assignee: nijtmans
closer: nijtmans
closedate: 2011-10-13T14:38:15
comment:
  This patch report is to contain discussion of the
  current scope problem with regards to internal
  functions that are being exported by-way of improper
  use of the EXTERN macro within tclInt.h.

  There will be a patch file shortly.


tkt_uuid: 1636685fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: 85. tclconfig
priority: 9 Immediate
foundin: None
title: FreeBSD's ld does not understand -pthread
cmimetype: text/plain
submitter: rebum
assignee: dkf
closer: dkf
closedate: 2010-01-03T21:17:22
comment:
  FreeBSD's linker does not understand the -pthread option.
  Since FreeBSD 5.3 on all architectures except alpha and sparc64 -lpthread is used. The mentioned two use -lkse. See attached patch.


tkt_uuid: 1112654fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: eliminate double substitution from configure.in
cmimetype: text/plain
submitter: jenglish
assignee: hobbs
closer: hobbs
closedate: 2010-08-13T20:13:20
comment:
  MSW reports (on the chat) that latest changes to
  configure.in / tcl.m4 (#1081595) break the build on NetBSD.

  Problem: "configure produces makefile targets like
  libtcl`echo ... | tr -d ...`".


tkt_uuid: 3554282fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 8
foundin: None
title: Checkin [30736d63f0] broke CFLAGS
cmimetype: text/plain
submitter: stwo
assignee: stwo
closer: nijtmans
closedate: 2012-08-07T10:29:55
comment:
  As of checkin 30736d63f0, CFLAGS is getting set to "-g -O2" and we are trying to avoid that.
  In tcl.m4,TEA_SETUP_COMPILER_CC:
  # If the user did not set CFLAGS, set it now to keep
  # the AC_PROG_CC macro from adding "-g -O2".
  if test "${CFLAGS+set}" != "set" ; then
      CFLAGS=""
  fi


tkt_uuid: 1946223fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: --with-x fails under cygwin
cmimetype: text/plain
submitter: gregcouch
assignee: hobbs
closer: sf-robot
closedate: 2008-11-23T02:20:23
comment:
  On Windows, TEA disregards the --with-x configuration option and assumes that the windowing system is win32, even when an X11 version of Tk is installed.


tkt_uuid: 3181878fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.5.9
title: tclConfig.h not installed on Mac OS X
cmimetype: text/plain
submitter: mthuurne
assignee: das
closer: das
closedate: 2011-02-15T09:50:25
comment:
  Platform: Mac OS X, 10.4/10.5/10.6

  In older Tcl versions, the TCL_DEFS variable in tclConfig.sh contained the full list of #defines. In recent versions, TCL_DEFS instead refers to tclConfig.h using the "-imacros" option of GCC:
  TCL_DEFS='-DHAVE_TCL_CONFIG_H  -imacros tclConfig.h'

  The problem is that tclConfig.h is listed as a private header and therefore not installed by default. This breaks compilation of a program against libtcl when the default installation options were used.


tkt_uuid: 1460182fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: 85. tclconfig
priority: 3 Low
foundin: None
title: TEA_ENABLE_THREADS and pthread_mutex_init
cmimetype: text/plain
submitter: jenglish
assignee: hobbs
closer: sf-robot
closedate: 2007-02-24T03:20:11
comment:
  The TEA_ENABLE_THREADS macro goes through a lot of work
  to find out what library 'pthread_mutex_init' lives in
  and to set THREADS_LIBS.  However, THREADS_LIBS is not
  used anywhere else in the TEA build system; and in
  general extensions shouldn't call pthread_* directly
  anyway (they should generally use the Tcl public
  interface).

  It's not clear whether defining USE_THREAD_ALLOC is
  necessary either; this doesn't affect the public
  interface (though it is referenced by tclInt.h).


tkt_uuid: 947735ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 6
foundin: None
title: TEA: better MacOSX defaults
cmimetype: text/plain
submitter: dgp
assignee: das
closer: das
closedate: 2005-06-23T09:58:08
comment:
  The default ./configure; make install
  doesn't work on a MacOSX/Aqua install
  of Tcl/Tk. 

  The auto_path for wish is not a superset
  of the auto_path for tclsh.  Default install
  seems to place the package where
  wish cannot [package require] it.

  configure --libdir=/Library/Tcl 

  is one important step to a successful
  TEA instal on Mac OSX.  The complete
  set should be determined and made
  the default on that platform.


tkt_uuid: 1245329fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.5a4
title: TEA_PUBLIC_TCL_HEADERS: uninstalled Tcl
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2005-12-05T17:33:09
comment:
  TEA_PUBLIC_TCL_HEADERS has
  problems similar to those of
  TEA_PROG_TCLSH getting
  corrected in 1160114.

  What's wanted by an extension is
  the location of the header files that
  match the tclConfig.sh file found.
  A check for "Makefile" in $TCL_BIN_DIR
  is the way to distinguish between an
  installed tclConfig.sh and an uninstalled
  one.  The best search order for header
  files is different in those cases.

  The current list of directories searched
  by TEA_PUBLIC_TCL_HEADERS
  for tcl.h works well for installed Tcl,
  but can point to headers of the wrong
  version of Tcl, when an uninstalled
  tclConfig.sh file forms the configuration
  basis.


tkt_uuid: 1720242fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 7 High
foundin: None
title: OSF1 udpate for tcl.m4
cmimetype: text/plain
submitter: gregcouch
assignee: hobbs
closer: hobbs
closedate: 2010-08-13T20:42:01
comment:
  The TEA tclconfig/tcl.m4 file has operating system specific knowledge for many systems.  You can tell which ones are obsolete because of the SHLIB_LD_LIBS="" lines -- that means that any dependencies are left out and when the package is loaded, if any of the dependencies are not already loaded (e.g., OpenGL), then the load will fail.  The attached patch fixes the bug for OSF1-V*.  I'd recommend making SHLIB_LD_LIBS='${LIBS}' the default for all platforms to make it more likely older platforms will still work.


tkt_uuid: 875784ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: tclconfig/tcl.m4 fixes for automake 1.8
cmimetype: text/plain
submitter: mtsullivan
assignee: hobbs
closer: hobbs
closedate: 2006-03-28T22:46:48
comment:
  The aclocal in GNU automake version 1.8 issues many
  warnings
  about underquoted definitions in tcl.m4 (revision 1.41).
  Here's a patch to pacify it.


tkt_uuid: 3324676fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 8
severity: Minor
foundin: None
title: AC_PROG_INSTALL incompat
cmimetype: text/plain
submitter: dgp
assignee: jan.nijtmans
closer: jan.nijtmans
closedate: 2456477.96840784
comment:
  The checkin

  http://core.tcl.tk/tclconfig/info/55c5e73a80

  removed the AC_PROG_INSTALL() from
  TEA_SETUP_COMPILER_CC() so now
  projects like Itcl that were making use of
  @INSTALL*@ values see them no longer work
  when they update to the latest TEA and
  rebuild their configure files.

  The workaround is for each of these projects
  to have their own AC_PROG_INSTALL() in
  their configure.in .  Is that the intent of this change?
  How to communicate this revised expectation
  to the projects?  Should this level of incompat
  prompt a 3.9 -> 3.10 renaming?


tkt_uuid: 3030664fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.5.8
title: compile error?
cmimetype: text/plain
submitter: tombert
assignee: andreas_kupries
closer: hobbs
closedate: 2010-08-04T20:39:22
comment:
  I'am using CVS release 0.6 (package oo) on Windows7 with MinGW and MinSYS environment. TCL and TK compiles fine ...
  oo configure works well (attached) but then the compile failes ... currently I'am out of ideas if I'am doing wrong or if there is really a bug ... the compile result is attached in the same file.
  thx


tkt_uuid: 1432696fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Works For Me
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA needs -ltk before -ltcl
cmimetype: text/plain
submitter: gregcouch
assignee: hobbs
closer: sf-robot
closedate: 2010-09-29T19:23:04
comment:
  When linking without stubs, extensions need to link
  first against tk and then against tcl because the tk
  library refers to symbols in the tcl library and *NIX
  linkers resolve dependencies from left to right.


tkt_uuid: 3598299fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: Invalid
subsystem: 85. tclconfig
priority: 5 Medium
foundin: current: 8.6.0
title: unix: tcl does not create non-versioned symlinks for dso
cmimetype: text/plain
submitter: roflz
assignee: nijtmans
closer: nijtmans
closedate: 2012-12-24T08:16:37
comment:
  the tcl compilation and installation only creates libtcl8.6.so, but not libtcl.so

  so it impossible to link against the .so without knowing the exact version.
  since the pkgconfig file does omit this entry (bug #3598282), the only way to get the right dll to link against is by either source'ing the proprietary TclConfig.sh or grepping the /lib directory for libtcl*.so


tkt_uuid: 1230554fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: Add /usr/lib64 to tclconfig search path
cmimetype: text/plain
submitter: wart
assignee: hobbs
closer: hobbs
closedate: 2010-08-13T20:57:51
comment:
  In the Tcl core, tcl.m4 tries to locate tclConfig.sh
  from a few well-known locations:

              # check in a few common install locations
              if test x"${ac_cv_c_tclconfig}" = x ; then
                  for i in `ls -d ${libdir} 2>/dev/null` \
                          `ls -d /usr/local/lib
  2>/dev/null` \
                          `ls -d /usr/contrib/lib
  2>/dev/null` \
                          `ls -d /usr/lib 2>/dev/null` \
                          ; do
                      if test -f "$i/tclConfig.sh" ; then
                          ac_cv_c_tclconfig=`(cd $i; pwd)`
                          break
                      fi
                  done
              fi

  It would be nice to add /usr/lib64 to the end of this
  list so that 64-bit systems don't have to explicitly
  set ${libdir} on the command line.


tkt_uuid: 936546ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA: min Tcl version check
cmimetype: text/plain
submitter: dgp
assignee: jenglish
comment:
  One thing an extension may want to
  check during configuration is whether
  the tclConfig.sh file found is for a
  recent enough Tcl release to cover
  the extension's build requirements.

  It's simple to add checks against
  TCL_MAJOR_VERSION and
  TCL_MINOR_VERSION directly
  in the configure.in file, but it might
  be nicer if the TEA_ macros did
  this for all extensions consistently.

  Perhaps an argument to
  TEA_LOAD_TCLCONFIG to
  indicate the version requirement
  of the extension?


tkt_uuid: 950210ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: 85. tclconfig
priority: 1 Zero
foundin: obsolete: 8.5a2
title: TEA_ADD_TCL_SOURCES prevents generated files
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2005-03-25T17:16:18
comment:
  TEA_ADD_TCL_SOURCES strictly
  requires the files to exist at configure
  time.  This prevents the use of any
  configure-generated files.

  For example, one might want a
  foo.tcl to be generated from a
  foo.tcl.in to get an up to date
  value of @PACKAGE_VERSION@
  substituted into a
  [package require -exact foo @PACKAGE_VERSION@]
  commands that verifies the
  script library and binary library
  are two parts of the same version.


tkt_uuid: 1777301fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA: --exec-prefix not set from --prefix
cmimetype: text/plain
submitter: pointsman
assignee: hobbs
closer: sf-robot
closedate: 2008-11-23T02:20:23
comment:
  A typical TEA 3.6 configure --help claims, that the default of --exec-prefix is set from prefix. Or at least, that is, how I understand it (reformated

  Installation directories:
    --prefix=PREFIX
      install architecture-independent files in PREFIX [/usr/local]
    --exec-prefix=EPREFIX
      install architecture-dependent files in EPREFIX                   [PREFIX]

  But, if --prefix=/some/path is given to configure, the generated Makefile has:

  ...
  prefix          = /some/path
  exec_prefix     = /usr/local
  ...

  It seems, that exec_prefix is always set to the prefix default; there's code in TEA_INIT, which seems to do this.

  Note, that there is no real problem. Using both --prefix and --exec-prefix works.

  Just make the software do, what the doc (--help) say, or make the doc say, what the software really does.


tkt_uuid: 1077363fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: Make pkgIndex.tcl generation include Tcl files
cmimetype: text/plain
submitter: karll
assignee: stwo
closer: sf-robot
closedate: 2010-09-29T19:22:35
comment:
  The way that pkgIndex.tcl is generated right now is
  primitive.  It either only knows about the shared
  library or requires serious messing with the Makefile.

  If I include any Tcl files to be installed, for example
  in configure.in,

  TEA_ADD_TCL_SOURCES([runtime/pgtcl.tcl])

  ...and that files does a "package provide Pgtcl 1.4",
  for example, it's not automatically picked up in the
  pkgIndex.tcl, but it can be, very easily...

  When doing an install, simply cd to the install
  directory and execute tclsh with a "pkg_mkIndex ." as
  the program.  This will generate a correct pkgIndex.tcl
  that will pick up the shared library and any other
  packages defined by .tcl files and/or other shared
  libraries in the target directory.


tkt_uuid: 937970ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA: --enable-threads by default ?
cmimetype: text/plain
submitter: dgp
assignee: hobbs
closer: hobbs
closedate: 2005-09-29T16:38:34
comment:
  Most extensions that are multi-interp
  safe ought to be multi-thread safe
  fairly trivially.  Seems that having
  the --enable-threads option enabled
  by default for TEA extensions would
  be good.

  Then those few extensions which do
  make the choice to remain unsafe
  for multi-threading would have to
  force the -disable-threads  -- making
  them the odd extensions.


tkt_uuid: 3058486fffffffffffffffffffffffffffffffff
type: RFE
status: Open
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA_LOAD_CONFIG doesn't set all BUILD_ vars
cmimetype: text/plain
submitter: kennykb
assignee: kennykb
comment:
  When loading a configuration from the build dir, TEA_LOAD_CONFIG sets:

  AC_MSG_WARN([Found Makefile - using build library specs for $1])
          $1_LIB_SPEC=${$1_BUILD_LIB_SPEC}
          $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC}
          $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH}

  These aren't all that's needed for a successful compile.  I suggest adding:

  $1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC}
  and
  $1_LIBRARY_PATH=${$1_LIBRARY_PATH}

  so that $1.h and the Tcl script library for $1 can also be located; all compiles need the first, and 'make test' needs the second.

  Workaround in tdbc drivers is to have the code:

  # The next bit probably ought to be in TEA_LOAD_CONFIG
  AC_MSG_WARN([Looking for "${tdbc_BIN_DIR}/Makefile"])
  if test -f "${tdbc_BIN_DIR}/Makefile" ; then
      AC_MSG_WARN([Found Makefile - using build include spec and lib specs for tdbc])
      tdbc_INCLUDE_SPEC=${tdbc_BUILD_INCLUDE_SPEC}
      tdbc_LIBRARY_PATH=${tdbc_BUILD_LIBRARY_PATH}
  fi
  AC_SUBST(tdbc_LIBRARY_PATH)

  in each configurator.


tkt_uuid: 3607702fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: Patch to Tclconfig adding support for UnixWare
cmimetype: text/plain
submitter: xenu536
assignee: nijtmans
closer: nijtmans
closedate: 2013-03-12T14:00:28
comment:
  Hi!

  I'm not sure if this is right place to post it. Please send me elsewhere if I posted in wrong place.

  This patch allows building TEA extensions on UnixWare. All I did was copying part of Tcl's tcl.m4 to TEA's tcl.m4.

  Any comments are welcome :)


tkt_uuid: 1500979fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.4.13
title: pkgIndex.tcl is removed in "make clean"
cmimetype: text/plain
submitter: jcw
assignee: hobbs
closer: sf-robot
closedate: 2007-02-23T03:20:10
comment:
  In my extensions based on sampleextension's TEA 3.5, make clean 
  removes pkgIndex.tcl, which is however not rebuilt by a make, but by 
  configure (from pkgIndex.tcl.in).

  As a result, make clean causes trouble in a subsequent make.

  I can't see how to work around this, the CLEANFILES variable in the 
  Makefile is set up by configure.  I suppose configure should not add 
  pkgIndex.tcl to the CLEANFILES list if it sees a pkgIndex.tcl.in

  Maybe related: I've had trouble building a variant by creating a new dir, 
  then doing "cd newdir; /path/to/orig/configure; make".  The make does 
  nothing if there are build results in the original area.  Doing a "make 
  clean" in the original area is enough to make the variant build normally.

  Which is what brought up that first issue ...

  (I try to avoid make distclean to be able to keep the configure settings)

  -jcw


tkt_uuid: 1703170fffffffffffffffffffffffffffffffff
type: RFE
status: Open
resolution: Remind
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
foundin: None
title: TEA_INIT does exact version matching
cmimetype: text/plain
submitter: dgp
assignee: aku
closer: nobody
closedate: 2010-08-13T18:20:24
comment:
  This is more a question than a
  request actually.  I notice that
  TEA_INIT implements exact version
  matching.  That is, if the
  configure.in file for some package
  contains the line:

    TEA_INIT([3.5])

  And then the HEAD of tclconfig
  (currently marked as TEA 3.6)
  is used with autoconf to generate
  a configure script for that package.

  Then when the configure script runs,
  it will spit out a warning about
  the mismatch of version numbers.

  In other contexts I might expect
  version 3.6 of something to satisfy
  a requirement of 3.5, but that's
  not the kind of matching being done here.
  Perhaps version numbers suggesting
  that kind of compatibility tracking
  ought not be used if that's not the
  kind of matching being done?  Or
  perhaps TEA_INIT matching should be
  revised to conform to expectations
  more like those of [package require]?

  In light of the exact matching requirement
  implemented in TEA_INIT, some guidance
  on how package authors ought to maintain
  this would be helpful.

  If package authors are intended to
  update the TEA_INIT() lines in their
  configure.in files only when their
  package needs require it, then it seems
  they will want to have a snapshot copy
  of tclconfig that matches their needs,
  and they ought not track the HEAD of
  tclconfig.  In that case, it would be
  helpful for the tclconfig cvs module to
  have some cvs tags marking the snapshots
  that correspond to a version of TEA, and
  even better, tclconfig might provide some
  "releases" of TEA support files.

  On the other hand if a package is tracking
  the HEAD of tclconfig, it seems that any
  `cvs update` that brings in a new TEA_VERSION
  value needs to prompt an edit of the
  TEA_INIT line of that package to maintain
  warning-free compatibility.  Some greater
  visibility about such changes on the HEAD
  of tclconfig might be helpful (an announcement
  on a mailing list?).  Or, perhaps
  support for a zero-argument form of TEA_INIT
  would be better, to permit a maintenance-free
  way for the package author to say "any version
  is fine", when the package author knows he
  will be tracking the latest and greatest.

  Or maybe I'm off on all of this, and I just
  need someone to point out the better way.


tkt_uuid: 1407544fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA 3.4 missing another common tclConfig.sh path
cmimetype: text/plain
submitter: wart
assignee: hobbs
closer: hobbs
closedate: 2006-01-23T19:38:15
comment:
  When building extensions on Windows, it is necessary to
  have a windows installation of Tcl installed.  A common
  way to achieve this is to install ActiveTcl.  ActiveTcl
  installs tclConfig.sh into c:/tcl/lib, but
  TEA_PATH_TCLCONFIG does not contain this in its search
  path.  As a result, one must pass
  "--with-tcl=c:/tcl/lib" to configure.

  It would be very convenient if TEA_PATH_TCLCONFIG
  looked for tclConfig.sh in ActiveTcl's default location.


tkt_uuid: 3606445fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
foundin: None
title: Unneeded -DHAVE_NO_SEH=1 when not building on Windows
cmimetype: text/plain
submitter: stwo
assignee: jan.nijtmans
closer: jan.nijtmans
closedate: 2456478.00222403
comment:
  The define HAVE_NO_SEH appears is meaningless outside of Windows.
  The cc invocation line is already quite long.
  Let's not make it longer without reason, eh?


tkt_uuid: 1160114fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 7 High
foundin: obsolete: 8.5a3
title: TEA_PROG_TCLSH doesn't check version
cmimetype: text/plain
submitter: dgp
assignee: hobbs
closer: mdejong
closedate: 2005-07-26T19:32:00
comment:
  Sometimes it is important
  to test an extension in the
  same version of Tcl it was
  configured for.  (Or at least
  not an earlier, possibly incompatible,
  release).

  TEA_PROG_TCLSH appears to
  just crawl through a search path
  looking for any programs named
  tclsh* .  This could easily be an
  earlier release of Tcl, and
  conceivably not a Tcl interpreter
  program at all.

  Would be an improvement for
  TEA_PROG_TCLSH to try
  to evaluate [info tclversion]
  in the program it finds.  This 
  would allow verification that
  the program is in fact a Tcl
  interpreter at all, and that it
  provides a Tcl version that satisfies
  the TCL_VERSION value in
  the tclConfig.sh file that is
  in use.

  This has bitten when people
  try to test the trofs extension,
  where they configure against
  a Tcl 8.5 tclConfig.sh and
  header files, but attempt to
  run the test suite in a Tcl 8.4
  tclsh, which fails.


tkt_uuid: 1407517fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA_CONFIG_CFLAGS does not recognize mingw
cmimetype: text/plain
submitter: wart
assignee: hobbs
closer: hobbs
closedate: 2006-01-22T22:07:56
comment:
  I'm running the tcl.m4 from the CVS head on WinXP using
  mingw 0.8.

  I tried using this with the sample extension and got
  the following warning when running 'configure':

  "Can't figure out how to do dynamic loading or shared
  libraries on this system."

  Walking through the TEA_CONFIG_CFLAGS macro uncovered
  the problem.  In the giant 'case' statement for each
  platform, the branch for windows is listed as
  'windows', which is not a possible value.

  AC_DEFUN(TEA_CONFIG_CFLAGS, [
  ...
  if test "${TEA_PLATFORM}" = "windows" ; then
     # TEA_PLATFORM is either 'windows' or 'unix'
     ...
  fi
  ...
  # This sets $system to 'uname -s'-'uname -r',
  # which on mingw is:
  # MINGW32_NT-5.1-1.0.8(0.46/3/2)
  TEA_CONFIG_SYSTEM
  ...
  case $system in
      windows)
          ...
      AIX-*)
          ...
  esac


  The branch for windows should instead be:

  case $system in
     
  *win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*)


tkt_uuid: 1997760fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.5.2
title: TEA : configure aborts with a warning but no error
cmimetype: text/plain
submitter: nicolascastagne
assignee: patthoyts
closer: hobbs
closedate: 2008-11-04T21:45:37
comment:
  I may have discovered a minor bug in the configure file of the TEA sample extension. I may be wrong since I'm not a autoconf / automake specialist, but... 
   
  Here is the problem : 
   
  When runing ./configure without tcl installed (or installed in such a place where ./configure cannot find it), configure prints a warning: 
        WARNING: Can't find Tcl configuration definitions 
  , then exists, but without an error (exit 0, indeed). 
   
  I bet it should generate an error, instead of a warning. 
   
  This **bug** was found on a the recent 20080327 snapshot of the sample extension. 
  It is on line 1588 of the configure file 
   
  Regenerating the configure file with autoconf (version 2.61 here, linux) does produce the same configure file, with the same problem. 
   
  I don't know if the **bug** comes from autoconf itself, or from the configure.in file.


tkt_uuid: 1540729fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: 85. tclconfig
priority: 6
foundin: None
title: TEA_ADD_SOURCE is too aggressiv with dir stripping
cmimetype: text/plain
submitter: mic42
assignee: hobbs
closer: sf-robot
closedate: 2010-09-29T19:00:04
comment:
  The TEA_ADD_SOURCE macro as used in the sampleextension
  is overaggressiv when stripping source directories for
  the PKG_OBJECTS.

  If one uses the TEA_ADD_SOURCE macro with files outside
  of the generic/unix/win directories (for example with
  the tdom package with the expat/xmlrole.c file) the
  macro creates a PKG_OBJECTS where the expat dir is
  stripped from the file, but does not setup an
  appropriate VPATH in the Makefile.

  This leads to a failure during make, as no implicit
  rule for the object is found.

  Solution would be to only strip the path from the
  PKG_OBJECTS values if it is in the special subdirs
  win/unix/generic.

  Michael


tkt_uuid: 1092952fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: TEA patch for MSVC7
cmimetype: text/plain
submitter: jenglish
assignee: hobbs
closer: hobbs
closedate: 2004-12-30T00:10:30
comment:
  Patch to sampleextension/tclconfig/tcl.m4 to allow TEA
  extensions to build with MSVC7 (the "free" edition of
  the VC++ toolkit).

  Summary of changes:

  + Don't use "-GD"
  + Don't use "-link50compat"
  + Don't use "-YX"
  + Use "LINK -LIB" instead of "LIB" for STLIB_LD.

  Related information: http://wiki.tcl.tk/11431


tkt_uuid: 1241752fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 7 High
foundin: None
title: FreeBSD fix for TEA_PATH_TCLCONFIG and TEA_PATH_TKCONFIG
cmimetype: text/plain
submitter: sick_soul
assignee: hobbs
comment:
  Hello,

  I have strenghtened the search for tclConfig.sh and
  tkConfig.sh in the TEA_PATH_TCLCONFIG and
  TEA_PATH_TKCONFIG.

  On FreeBSD 4.10 (the machine of the sourceforge compile
  farm so you can check first hand btw), tclConfig.sh is
  in /usr/local/lib/tcl[VERSION]/

  If you call TEA_INIT and then TEA_PATH_TCLCONFIG or/and
  TEA_PATH_TKCONFIG, the macros fail and exit 0

  This patch adds the same checks used above for the
  "check for a private tcl|tk installation" for each
  member of the "check for some default locations" using
  a loop. It is a fix for FreeBSD but should benefit all.

  Claudio


tkt_uuid: 1252346fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
foundin: None
title: Add framework support to TEA
cmimetype: text/plain
submitter: joevalleyfield
assignee: das
comment:
  This is one possible implementation of two macros that
  assist greatly in adding framework support to TCL
  extensions.

  TEA_Enable_Framework is a function that takes the
  framework name as its argument (this may be different
  that package name as package name is often all
  lowercase and framework name is often title case) and
  adds a feature check --enable-framework that acts like
  tcl or tk or python's --enable-framework configure option.

  The second macro, TEA_PACKAGE_CONFIG sets up variables
  for use in the makefile and in a tclConfig.sh type of
  shell script.  Credit goes to the makers of
  configure.in in Itk and Itcl for the part of this not
  having to do with frameworks.  Variables named like
  packagename_LIB_PATH are created.  Perhaps it would be
  better to do m4_upper(AC_PACKAGE_NAME)[_LIB_PATH]. 
  itclConfig.sh uses lowercase names.  itkConfig.sh uses
  uppercase names.


tkt_uuid: 726310ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 7 High
foundin: None
title: TEA 2 documentation should include doc recommendation
cmimetype: text/plain
submitter: lvirden
assignee: hobbs
comment:
  If the sample extension is intended to be a model of
  TEA 2, it would be useful if there were some TEA 2
  style guidelines included in the distribution - one of
  which being that people should install documentation ,
  with namespace naming used as closely as possible, to
  prevent reference doc name conflicts.

  For example, currently there are at least 2 extensions
  which have 'tree' commands.  Currently, the user sees
  either the BLT or tcllib tree man page, depending on
  which was last installed.

  That's not a good thing.


tkt_uuid: 948498ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: 85. tclconfig
priority: 5 Medium
foundin: obsolete: 8.4.6
title: bug tcl8.4.6 -> autoconf -> tcl.m4
cmimetype: text/plain
submitter: aotto1968
assignee: rmax
closer: hobbs
closedate: 2005-05-31T03:13:56
comment:
  Hi, 
   
    my case:  current SuSe linux to build "configure" with autoconf 2-13 
   
    what happen: building configure with "autoconf" fails: 
    why? 
   
    1) tcl.m4 -> SC_ENABLE_SYMBOLS 
    2) SC_ENABLE_SYMBOLS is using the word "symbols" to check for 
       --enable-symbols 
    4) now gnu-m4 defines: 
   
  info -> m4 
  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>< 
  Getting the defined macro names 
  =============================== 
   
     The name of the currently defined macro can be accessed by `symbols': 
       symbols 
   
  which results in a sorted list of quoted 
  strings.  This contrasts with 
  `dumpdef' which output can not be accessed by `m4' 
  programs. 
   
     When given arguments, `symbols' returns the sorted subset of the 
  symbols currently defined: 
       symbols(`ifndef', `ifdef', `define', `undef') 
       =>define,ifdef 
  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
   
  the m4 key-word "symbols" breaks the tcl build-keyword 
  "symbols" 
     5) patch tcl.m4 (ACHTUNG!: "[" and "]" arround "symbols" ) : 
   
  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  AC_DEFUN(SC_ENABLE_SYMBOLS, [ 
      AC_MSG_CHECKING([for build with [symbols]]) 
      AC_ARG_ENABLE([[symbols]], [  --enable-symbols        build with 
  debugging symbols [--disable-symbols]],    [tcl_ok=
  $enableval], 
  [tcl_ok=no]) 
  # FIXME: Currently, LDFLAGS_DEFAULT is not used, it 
  should work like 
  CFLAGS_DEFAULT. 
      if test "$tcl_ok" = "no"; then 
          CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)' 
          LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)' 
          DBGX="" 
          AC_MSG_RESULT([no]) 
      else 
          CFLAGS_DEFAULT='$(CFLAGS_DEBUG)' 
          LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)' 
          DBGX=g 
          if test "$tcl_ok" = "yes"; then 
              AC_MSG_RESULT([yes (standard debugging)]) 
          fi 
      fi 
      AC_SUBST(CFLAGS_DEFAULT) 
      AC_SUBST(LDFLAGS_DEFAULT) 
   
      if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then 
          AC_DEFINE(TCL_MEM_DEBUG) 
      fi 
   
      if test "$tcl_ok" = "compile" -o "$tcl_ok" = "all"; then 
          AC_DEFINE(TCL_COMPILE_DEBUG) 
          AC_DEFINE(TCL_COMPILE_STATS) 
      fi 
   
      if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then 
          if test "$tcl_ok" = "all"; then 
              AC_MSG_RESULT([enabled [symbols] mem compile debugging]) 
          else 
              AC_MSG_RESULT([enabled $tcl_ok debugging]) 
          fi 
      fi 
  ]) 
  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    to fix this problem :^) 
   
  mfg 
   
    aotto 


tkt_uuid: 172223e008bd658549207b40a7a54209dea6d163
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
private_contact: cd7093095d9cfcb1d94e1ac96bf5d520b20d5cd7
title: Wrong filename in --disable-shared compile on MinGW
cmimetype: text/plain
submitter: jan.nijtmans
assignee: jan.nijtmans
closer: jan.nijtmans
closedate: 2456574.02974778
comment:
  Compiled Itcl (for example) with MinGW using --disable-shared, the filename of the generated static library is "itcl401.a". This should be "libitcl401.a". This is the same for all TEA-based packages, not only Itcl.


tkt_uuid: 00ed054f4fd86af9f3484f4defd6528101c7dc7b
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 6
severity: Minor
private_contact: 188f71e13dddf837628ce57db5b272a46853d02e
title: Search in Debian per-version directories
cmimetype: text/x-fossil-wiki
submitter: anonymous
assignee: jan.nijtmans
closer: jan.nijtmans
closedate: 2456655.95769369
comment:
  In Debian, tclConfig.sh installs into /usr/lib/tcl8.?, with a symlink in /usr/lib for a default version. However, the default version symlink is present only if tcl-dev package is installed, while tcl8.* packages don't install it themselves.

  It'd be cool if tcl.m4 checked those per-version locations too:

  <verbatim>
  From: Andrew Shadura <andrew@shadura.me>

  As Debian supports multiple parallel installations of Tcl, allow using any available of them if no default selected. 

  --- a/tcl.m4
  +++ b/tcl.m4
  @@ -138,6 +138,7 @@
   			`ls -d /usr/contrib/lib 2>/dev/null` \
   			`ls -d /usr/lib 2>/dev/null` \
   			`ls -d /usr/lib64 2>/dev/null` \
  +			`ls -d /usr/lib/tcl[[8-9]].[[0-9]] 2>/dev/null` \
   			; do
   		    if test -f "$i/tclConfig.sh" ; then
   			ac_cv_c_tclconfig="`(cd $i; pwd)`"
  </verbatim>


tkt_uuid: 78ef35454f58d206a479c67d578d4a00983d230f
type: RFE
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
foundin: all
private_contact: d0ad4471e07e8c03bf0d90786ec6d31e33bcf241
title: tcl.m4 uses obsolete macros
cmimetype: text/plain
submitter: gustafn
assignee: nobody
closer: nobody
comment:
  tcl.m4 uses serveral obsolete macros like AC_HELP_STRING, AC_TRY_COMPILE, AC_TRY_LINK, .... 
  To see the warnings, run autoconf and look for 

     fgrep -r "is obsolete" autom4te.cache/

  The commonly easiest way to upgrade is to run "autoupdate tcl.me", but this runs into a parsing problem in TEA_TCL_EARLY_FLAG. Maybe a manual update is faster.


tkt_uuid: 604f8d1457d42554dac1c6f002197442da94a832
type: RFE
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
foundin: current
private_contact: 36034badbf4fa68e1e6f55bc81729916152660a8
title: Installer improvements
cmimetype: text/plain
submitter: stwo
assignee: nobody
closer: stu
closedate: 2458122.65990053
comment:
  Clean up, add INSTALL_SCRIPT, make consistent with sampleextension's Makefile.in.
  Companion to sampleextenion ticket [f72ade40ae].


tkt_uuid: 06f1692bbe29449ac3f2161ebf9dd153d0349845
type: Patch
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
private_contact: cb5ae1e61bed433abdc5d7247e358bd43b61605b
title: cross compilation with native mingw compiler in Cygwin environment
cmimetype: text/x-fossil-wiki
submitter: pooryorick
assignee: jan.nijtmans
closer: jan.nijtmans
closedate: 2457303.05519971
comment:
  With a few changes, tcl.m4 can cover the scenario of using a native minGW
  compiler from a cygwin shell/utilities environment.  Since Cygwin is a target
  platform in its own right, this is a form of cross-compilation.   The included
  patch seems to be sufficient to enable this mode of building Tcl.  See [http://core.tcl.tk/tcl/tktview/d995ca52091dd8db7db415e4256e903093ee043a|Tcl issue d995ca52091dd8db7db415e4256e903093ee043a] for a companion patch.


tkt_uuid: ea225a7af7359dcc7f4ece381d2763f5171bce1c
type: Bug
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
private_contact: f292db5aa2d38d67d028c84f9216966e65c4e545
title: .dll install permissions
cmimetype: text/x-fossil-wiki
submitter: pooryorick
assignee: nobody
closer: nobody
comment:
  tcl.m4 uniformly sets 

  <verbatim>
  INSTALL_LIBRARY='${INSTALL_DATA}'
  </verbatim>

  , and in turn uses 644 permissions there:

  <verbatim>
  INSTALL_DATA='${INSTALL} -m 644'
  </verbatim>

  On Windows, [load] fails if exeuctabe permissions are not allowed on the .dll,
  so an attempt to build and install Tcl using Cygwin plus a native MinGW, while
  succesfull, resulted in .dll files such as itcl403.dll that failed to load.


tkt_uuid: e694144c9d0d47be97cfbb5bbc3eff5e19d4d7af
type: Bug
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
severity: Minor
private_contact: 256a8bb7bf16f60266dc76a2aac3bacfdc0a922d
title: pkglibdir in tcl.m4 vs Makefile.in
cmimetype: text/x-fossil-wiki
submitter: pooryorick
assignee: nobody
closer: nobody
comment:
  In tcl.m4, <code>$pkglibdir</code>, and hence several values in pkgConfig.sh,
  are hard-coded as a certain subdirectory of <code>$libdir</code>.  This
  corresponds to the default value of <code>$pkglibdir</code> in Makefile.in of
  the sample extension.  However, if <code>pkglibdir=...</code> is passed by the
  user on the "make" command line, then there may be a mismatch between the
  values in pkgConfig.sh and the actual installation path. One workaround I have
  employed is to make tcl.m4 sensitive to any value of $pkglibdir passed on the
  the "configure" command line, as shown in the sample diff below, and then
  invoking configure with a <code>pkglibdir=...</code> argument.  Not sure what
  the best general approach is; maybe to generate pkgConfig.sh from the Makefile
  rather than from configure?

  <verbatim>
  --- tdbc1.0.3/tclconfig/tcl.m4  2015-03-06 11:31:03.000000000 -0700
  +++ tdbc1.0.3.new/tclconfig/tcl.m4      2015-10-15 08:53:55.792833900 -0600
  @@ -4081,7 +4081,9 @@
       #--------------------------------------------------------------------
   
       # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib)
  -    eval pkglibdir="[$]{libdir}/$1${PACKAGE_VERSION}"
  +    if test -z "$pkglibdir"; then
  +            eval pkglibdir="[$]{libdir}/$1${PACKAGE_VERSION}"
  +    fi
       if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
          eval $1_LIB_FLAG="-l$1${PACKAGE_VERSION}${DBGX}"
          eval $1_STUB_LIB_FLAG="-l$1stub${PACKAGE_VERSION}${DBGX}"

  </verbatim>


tkt_uuid: 5c9aac9213dc4bc02544aefa9dcb07570194c2e9
type: Bug
status: Closed
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Important
foundin: 8.6
private_contact: 50441c2d1f421b8c701f8060a396dfeb9c5933f2
title: Update tcl.m4 to include NetBSD install path
cmimetype: text/plain
submitter: anonymous
assignee: hypnotoad
closer: hypnotoad
closedate: 2457666.33035388
comment:
  On a NetBSD system (NetBSD netbsd 7.0 NetBSD 7.0 (GENERIC.201509250726Z) amd64), and installing Tcl via pkg_add ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/7.0_2015Q4/All/tcl-8.6.4nb5.tgz , tclConfig.sh is automatically installed to /usr/pkg/lib . However, the only way I have found to use tcl.m4 to automatically locate tclConfig.sh would be to set the --prefix= configure option. Without setting the path via --prefix=, tclConfig.sh cannot be found.

  I recommend adding :

  `ls -d /usr/pkg/lib 2>/dev/null` \

  to the TEA_PATH_TCLCONFIG search paths in tcl.m4 to as a possible solution to address this issue. 

  Thank you


tkt_uuid: ab69a602bfb5efc4e3d9c707ae45ca3741052e6d
type: Support
status: Open
resolution: None
subsystem: 85. tclconfig
priority: 5 Medium
severity: Important
foundin: trunk
private_contact: d4d1d8192a46acf2c7d58cddc1040ecdbc9c9d77
title: MSVC rules.vc: Set HAVE_UINTPTR_T & HAVE_INTPTR_T
cmimetype: text/plain
submitter: mr_calvin
assignee: hypnotoad
closer: nobody
comment:
  Hi!

  As discussed with hypnotoad on IRC, rules.vc (or tcl headers) are missing these two flags esp. in 64bit builds under MSVC > 1300.

  I would assume sth. in tcl.h akin of:

  #if defined(_MSC_VER) && _MSC_VER > 1300
  #define HAVE_UINTPTR_T 1
  #define HAVE_INTPTR_T 1
  #endif

  or some conditional OPTS in rules.vc (which is what we will do till this being fix in Tcl itself).

  Seen under VS 2015, MSVC 19.00.23506


tkt_uuid: 7b67203bbcb5e58b631836b02461835e71e4e792
type: RFE
status: Open
resolution: Fixed
subsystem: 85. tclconfig
priority: 5 Medium
severity: Important
title: take libieee.a search out of TEA_TCL_LINK_LIBS
cmimetype: text/plain
submitter: dgp
assignee: hypnotoad
closer: nobody
comment:
  Recently Tcl's configure machinery was revised to stop
  seeking out and linking to a libieee.a library, since
  support for them is going away.  This was a change to
  the SC_TCL_LINK_LIBS in Tcl's tcl.m4 file.

  The corresponding change for TEA is probably a good idea too.

  It's not clear how important this is, because I do not have
  a sense of how much TEA_TCL_LINK_LIBS is used.

  For example, none of the TEA-using packages that are bundled
  in source code form with Tcl releases make use of it.


tkt_uuid: b8866544134a9a77efeb42b266877ecd62c12de8
type: Bug
status: Closed
resolution: Fixed
subsystem: 53. Configure and Build Tools
priority: 5 Medium
severity: Critical
private_contact: 9dffd9dca08d8cf29375b31fd4546e721bbedab8
title: TEA_INIT does not detect MINGW64_NT as windows
cmimetype: text/plain
submitter: petasis
assignee: nobody
closer: jan.nijtmans
closedate: 2458288.90639907
comment:
  In line 2909 of tcl.m4 there is a check like:

  *win32*|*WIN32*|*MINGW32_*)

  This does not include MINGW64_.


tkt_uuid: 0f7d79331d40b6dc42a51b2331277860192453e7
type: Bug
status: Open
resolution: None
subsystem: 53. Configure and Build Tools
priority: 5 Medium
severity: Important
title: Latest tcl.m4 generates broken config.status
cmimetype: text/plain
submitter: dgp
assignee: nobody
closer: nobody
comment:
  I tried to bring the tcl.m4 file, etc up to date
  in the iwidgets package. I grabbed the fossil tip
  of tcl.m4, dropped it in place, and ran autoconf 2.59
  to generate a configure script.

  Then when running that configure script, I get these
  errors:

  configure: creating ./config.status
  ./config.status: line 303: SHELL: command not found
  ./config.status: line 303: srcdir: command not found

  It appears to be complaining about this line in config.status:

  INSTALL="$(SHELL) $(srcdir)/tclconfig/install-sh -c"

  That's all I know.


tkt_uuid: 923f400aa03a560854048bbcbbb73ada5b93df8e
type: Bug
status: Closed
resolution: Fixed
subsystem: 53. Configuration and Build Tools
priority: 5 Medium
severity: Severe
foundin: latest
private_contact: 9dffd9dca08d8cf29375b31fd4546e721bbedab8
title: New paths required for Darwin
cmimetype: text/plain
submitter: petasis
assignee: nobody
closer: jan.nijtmans
closedate: 2458289.80806633
comment:
  TEA fails to work under Darwin (i.e. 10.13.3), as tclConfig.sh no longer exists in /System/Library/Frameworks. I am not a user of the OS, but a quick search shows that Apple is not going to put the file back.

  Thus I suggest to add a new path:
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks

  In the paths searched for tclConfig.sh/tkConfig.sh.

  You can see also this bug report for tkdnd:

  https://github.com/petasis/tkdnd/issues/16#issuecomment-377227556


tkt_uuid: 31c2e190363de58472169861ad7090d85706c8dd
type: Bug
status: Open
resolution: None
subsystem: 53. Configuration and Build Tools
priority: 5 Medium
severity: Important
foundin: latest
private_contact: 9dffd9dca08d8cf29375b31fd4546e721bbedab8
title: TEA_INIT does not detect MSYS_NT-10.0 as windows
cmimetype: text/plain
submitter: petasis
assignee: nobody
closer: nobody
comment:
  In line 2751 of tcl.m4 there is a check like:

  *win32*|*WIN32*|*MINGW32_*|*MINGW64_*)

  This does not include MSYS_NT-10.0. The line should be changed to:

  *win32*|*WIN32*|*MINGW32_*|*MINGW64_*|*MSYS_NT*)

  MSYS_NT-* will appear if you install MSYS2, but do not install gcc, because you want to use autotools/make with Visual Studio compiler.
  In such a case, you run the vcvarsal.bat script, to get a command prompt with the visual studio compiler tools, and then you run bash in that command prompt.

  Like:

  %comspec% /K "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" && set "MSYS2_PATH_TYPE=inherit" && C:\dev\msys64\usr\bin\bash.exe --login

  Then uname -s returns MSYS_NT-10.0.


tkt_uuid: 0d56ddedbebef31d6ed5f86f5d3c5816edae8f56
type: Bug
status: Open
resolution: None
subsystem: 70. Sample Extension
priority: 5 Medium
severity: Minor
title: CFLAGS broken at configure time
cmimetype: text/x-fossil-wiki
submitter: pooryorick
assignee: jan.nijtmans
closer: nobody
closedate: 2458344.03267987
comment:
  autoconf uses CFLAGS at configure time when performing many checks.  However,
  tcl.m4 adds the strings <code>${CFLAGS_DEFAULT}</code> and
  <code>${CFLAGS_WARNING}</code>.  Because of this, any autoconf test that passes
  CFLAGS to the compiler at runtime fails.  One example is
  <code>AC_TYPE_OFF_T</code>.  On a Linux system this test currently fails, and
  autoconf erroneously configures the build as if there was no such type
  available.  In one extension this leads to the error,

      <code>&lt;command-line&gt;: error: two or more data types in declaration specifiers</code>


# ticketchng

login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656

  I believe this is working correctly for WIndows - is this to
  handle it on unix as well?


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  the intent of the patch was to
  allow for spaces in path names
  on unix -- no testing was
  done on Windows.

  The patch is old enough now,
  it's not clear whether it can
  reasonably be adapted, or it's
  easier just to start over.


login: sf-robot
username: sf-robot
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=1312539

  This Tracker item was closed automatically by the system. It was
  previously set to a Pending status, and the original submitter
  did not respond within 14 days (the time period specified by
  the administrator of this Tracker).


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  exports reduced to 739 from 951 saving us from exporting 212
  functions that weren't "blessed" by being in the Stubs table.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Notes to self:

  1) tcl.h(2330) Tcl_Main is not in the Stubs table, but is
  exported.  What to do?..  Probably drop it into tcl.decls
  like it should have always been.

  2) unix\tclXtNotify.c(97) TclSetAppContext is being exported
  from there..  hmm..  No clue what should be done.

  3) unix\tclLoadShl.c(22) yet another reason to rename EXTERN
  to TCL_EXTERN, but this time do it the right way.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902

  Tcl_Main must not go in the stubs table, but it must be a
  public API function of the core. It's only ever intended for
  code that is linked against tcl.dll (add your version number
  of choice) directly.

  (I believe we've been through the loop on that item many
  times before.)


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  new patch with stuff I forgot and Tcl_Main moved to the
  public Stubs table.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Actually, no we haven't discused this before.

  Placing Tcl_Main in the Stub also exports from the dll, so
  it is the same.

  It just so happens to have a vector in the table.  Whether
  an extension is to use it or not is neglegable.  True, it
  doesn't make sense from the point-of-view of an extension,
  but people also use Stubs with applications.  Granted,
  without having interp to request it's table, it isn't
  obvious.  People who LoadLibrary"tclXX.dll), then
  GetProcAddress(hTcl, "Tcl_CreateInterp") then Tcl_InitStubs
  can get the table that way.  I can show you examples in code
  if you prefer.

  Also search google for c.l.t. posts by Paul Duffin around
  the `99 timeframe where someone showed him the usefulness of
  Tcl_Main being in the table.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Lets be clear on scope again. Here are the levels worded a
  bit differently:

  1) Public functions in the Stubs table.
  - Full privilege, the exported API.
  - ex. Tcl_CreateInterp

  2) Private functions in the Stubs table.
  - available to the user of the API and exported, but no
  guarantee across versions as they could change.
  - ex. TclDeleteCompiledLocalVars

  3) Internal functions and variables shared across the
  sources, but not exported.
  - no access from the outside.
  - ex. TclFinalizeCompExecEnv

  4) File scope variables and functions not intended to be
  accessed outside the source file they are declared in.
  - no access from the outside.
  - ex. BuildCommandLine from win/tclWinPipe.c and struct
  ThreadSpecificData found in almost every source file.

  Lets call these problem functions the 'internal' (#3) ones
  and the exported ones from tclInt.decls the 'private' #2
  ones.  All functions that fit class#3 need to have their
  accidental exporting removed.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  File Added - 106814: crazy.c

  Logged In: YES 
  user_id=7549

  dkf: here's some fun..  Have a look at crazy.c I just
  attached.  If one starts that "shell" with the path to
  tcl85.dll built by this patch, Tcl_Main has an entry in the
  table and Stubs works.  I could have attained the address to
  Tcl_Main with GetProcAddress, but I'm trying to make a point
  that Stubs should be for eveyone and no publics should escape.

  Even seen anyone use Stubs like that?


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  File Added - 106817: crazyUI.c

  Logged In: YES 
  user_id=7549

  here's another done GUI flavor.  No main window is present
  as I don't feel like merging event loops by calling
  Tcl_DoOneEvent(TCL_DONT_WAIT) from a WM_IDLE and WM_TIMER
  and the nastiness it gets into.  Imagine for a moment that
  Tcl is being run in a thread with async console reading
  seperate from the GUI's message pump and is a full featured
  GUI in MFC or wxWindows.

  AllocConsole() from a GUI app is pretty neet, eh?


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902

  If Tcl_Main() was stubbed, apps would be unable to call it
  without first initializing the stub table reference. This
  breaks existing users of the API, for whom the call to it is
  probably the only thing they have in their main() at the moment.

  Your examples are all very well, but they run smack into the
  fact that current users of Tcl_Main() would be significantly
  negatively impacted for no gain that they'd see. It's very
  much an exception!

  Assigning to someone else to argue with you that stubbing
  Tcl_Main is a bad idea...


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530

  dkf's last comment should
  be conclusive on the point
  that adding Tcl_Main() to
  the public stub table is an
  interface change, needing a TIP,
  and should be out of scope in
  this bug-fixing patch.

  I'll save my arguments for when
  that arrives. ;)

  Thanks for the work cleaning up
  the internal stuff though!

  Passing control to another pair
  of eyeballs.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Actually, it isn't an interface change at all.  The scope is
  unchanged being as public as it was before.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530

  check the Tcl_Main() documentation.

  Tcl_Main() is explicitly not available
  to extensions.  It's also not thread-safe,
  so unsuitable for stub-based access.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  > Actually, it isn't an interface change at all.  The scope is
  > unchanged being as public as it was before.

  It's a big change at the source level:  after #include
  <tcl.h>, the symbol 'Tcl_Main' would be a macro that
  dereferences a (unititialized) function pointer, instead of
  a public function name.

  This would cause catastrophic failures for nearly all
  current users of Tcl_Main().


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  dkf> If Tcl_Main() was stubbed, apps would be unable to call it
  dkf> without first initializing the stub table reference.

  Untrue!  Only if they were using the Stub interface. 
  implicit linking is as normal by not specifying
  USE_TCL_STUBS.  Just like all other exported functions.  The
  standard shells are not build with -DUSE_TCL_STUBS.

  dkf> This breaks existing users of the API, for whom the
  call to 
  dkf> it is probably the only thing they have in their main()
  at the
  dkf> moment.

  Again, untrue!  The only difference is that Tcl_Main is
  defined to (tclStubsPtr->tclMain) for when USE_TCL_STUBS is
  defined.  It never never had an entry in the table before. 
  Without USE_TCL_STUBS, it is as it was regarding visibility.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  jenglish: show me an example in code where someone builds a
  shell and has defined USE_TCL_STUBS, but expects Tcl_Main to
  be linked implicitly.  IOW, Tcl_Main is through implicit
  linkage and their Tcl_Init is by way of the Stubs table.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  File Added - 106838: crazyALT1.c

  Logged In: YES 
  user_id=7549

  jenglish: build crazyALT1.c against 8.4 and you'll see at
  link-time you need to specify tcl84.lib (the import library)
  along with tclstub84.lib.

  By Tcl_Main being the "bad apple" in the basket, and
  requires the import library, the version indepedence that
  Stubs allows us was destroyed.  Though users of this style
  probably got smart and probably switched to a manual
  LoadLibrary and got the address to Tcl_Main with
  GetProcAddress when looking for Tcl_CreateInterp, too.  I'd
  do that given that the current "no access" is ilfounded when
  Stubs was only thought to used for extension only.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  > jenglish: show me an example in code where someone builds a
  > shell and has defined USE_TCL_STUBS, but expects Tcl_Main to
  > be linked implicitly.

  I've always built shells this way (well, since 8.1 anyway);
  I thought it was pretty much conventional (i.e., main() just
  calls Tcl_Main and passes in the address of the local
  AppInitProc).  Strictly speaking I don't *have* to use
  -DUSE_TCL_STUBS when compiling the main .c file, but I do
  anyway just 'cause I always use -DUSE_TCL_STUBS.

  Converse question:  If you're happy using LoadLibrary() /
  GetProcAddress() to call Tcl_CreateInterp(), why isn't the
  same technique acceptable for Tcl_Main()?  I really don't
  see any advantages to the technique in crazy*.c, and plenty
  of disadvantages.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Attached crazyALT2.c as the example for how to currently
  access Tcl_Main when using a Stubs-enabled executable.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  >Strictly speaking I don't *have* to use
  >-DUSE_TCL_STUBS when compiling the main .c file, but I do
  > anyway just 'cause I always use -DUSE_TCL_STUBS.

  That doesn't buy you the version independance offered by
  Stubs.  Though on unix, you can probably get around it, but
  not on win as the version number is tied to the name of the
  dll at link-time due to Tcl_Main requiring the import library.

  >Converse question:  If you're happy using LoadLibrary() /
  > GetProcAddress() to call Tcl_CreateInterp(), why isn't the
  > same technique acceptable for Tcl_Main()?

  If it was already in the Stubs table, I wouldn't need to do
  it.  The original reason that Paul left it out was because
  he didn't consider non-extensions would use Stubs.  And
  Tcl_Main has no place with extensions.

  >  I really don't see any advantages to the technique in 
  > crazy*.c, and plenty of disadvantages.

  Fire away, I'll counter each disadvantage with a balanced
  advantage.  The main advantage is version independence as I
  can build to 8.1 and load into any 8.x Tcl.  A good second
  is that I have control over what core to load at run-time
  rather than link-time.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  To reference Paul Duffin himself on the issue of Tcl_Main,
  see
  http://groups.google.com/groups?selm=pgpmoose.199901141048.27495%40non.non.net
  for this:
  "
  The stub interfaces of Tcl and Tk provide access to almost
  all of the
  external and internal functions both generic and platform
  dependent. The
  exceptions to these rules are ones which it makes no sense
  to make
  available through the stub interface. These include all Tcl
  command
  functions plus the following functions:

   Tcl_Main
   Tcl_AppInit
   Tk_Main
  "

  Tcl_Main is not there not because it is bad, but from the
  point-of-view of only using Stubs linkage for extensions it
  makes no sense.  But Stubs linkage can be used for
  applications, too.  If, on the other hand, people have
  gotten use to this "restriction" in such a way as to repair
  it would cause bad side-effects for those that expect
  Tcl_Main to only have implicit  linkage irregardless of
  -DUSE_TCL_STUBS, then it becomes a sad day when problems are
  unable to be repaired.

  http://groups.google.com/groups?selm=37A8134C.2847%40mailserver.hursley.ibm.com


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Currently, to build a version-independent shell that
  dynamically loads Tcl, you can use:
    + hTcl = LoadLibrary(...path to tcl8X.dll...)
    + tclMainPtr = GetProcAddress(hTcl, "Tcl_Main")
    + (*tclMainPtr)(argv,argc, yourAppInitProc);

  In the scheme you propose, you would instead:
     + hTcl = LoadLibrary( .... )
     + tclCreateInterpPtr = GetProcAddress(hTcl,
  "Tcl_CreateInterp");
     + tempInterp = (*tclCreateInterpPtr)(...);
     + Tcl_InitStubs(tempInterp);
     + Tcl_DeleteInterp(tempInterp)
     + Call Tcl_Main() through the stubs table.

  This is more complicated, less perspicuous, and isn't even
  version-independant since it would only work for versions of
  the core where Tcl_Main is in the stubs table.

  How is the second one an improvement?  I just don't see it.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Don't pull the "it's been that way forever" arguement, it
  lacks merit.

  You fail to see the rest of the Tcl API by realizing the one
  call to Tcl_InitStubs sets everything (minus Tcl_Main).  In
  your manner, which is identical to crazyALT2.c, the addition
  step is needed to retreive the address of Tcl_Main.  Though
  you didn't say whether both implicit *and* Stubs linkage are
  in use by your example.  It would be hellish to have to
  GetProcAddress for all Tcl functions should -DUSE_TCL_STUBS
  not be used.

  Seeing that one would need that work anyways to support the
  whole 8.1+ range given that Tcl_Main might appear in the
  Stubs is no argument that it should stay that way.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Hell, I even re#define the whole namespace APIs back to the
  private tables, not to fix Tcl, but to allow version
  indepedence though additional work.  Placing the namespace
  API into public scope was a very needed change, but I don't
  consider the namespace APIs to start when they got moved to
  public scope.

  Same for Tcl_Main.  Because a vector doesn't exist for it in
  the Stubs table, doesn't mean I can't get at it
  (thankfully), but my desire for it alone is grounds for
  being in the Stubs table whether the hacks still need to be
  in my code or not to support versions prior to it getting
  placed into the Stubs table.

  see
  http://groups.google.com/groups?selm=37A8134C.2847%40mailserver.hursley.ibm.com
  for Paul's conclusion


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  PS. if you build shells for both implicit linking and
  -DUSE_TCL_STUBS you will have a hard time using additional
  Stubs tables from other extensions.  Try it..  It doesn't
  work.  Something about Tcl_PkgRequireEx in those Stub static
  libs don't have the right linkage.  I forgot the exact
  conditions; it's been 5 years since I found it.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  > Don't pull the "it's been that way forever" arguement, it
  lacks merit.

  OK, then ignore the version-independance issue.   And the
  "more complicated" and "less perspicuous" parts too.

  How is the second version an improvement over the first?


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  dgp> Are you raising 540378 now?
  I figured-out how to backload it.  I'm fine with the change.
   You did have to invent a new path of development and how to
  move privates to public scope.

  je> How is the second version an improvement over the first?

  All publics are set by Tcl_InitStubs and don't contain an
  exception.  An exception found not to useful for those using
  Stubs with applications which was beyond the foresight of
  the author of Stubs.


login: kennykb
username: kennykb
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=99768

  Can we please agree to constrain scope - on this particular
  patch - to the externals that are exported accidentally? My
  opinion is that incompatible change to the export mechanism
  for Tcl_Main requires a TIP.  The other two hundred symbols
  are much less controversial - please let us not throw that
  particular baby away with the bathwater.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Ok, Tcl_Main returned to as is.

  New patch attached.  This now uses TCL_INTERN() to declare
  internal functions not destined to be exported (nor imported
  by a client of the API).  I decided to have the macro take
  the return type as an argument because some special
  attributes such as calling convention are placed after the
  return type.  I'mjust trying to think into the future by
  doing this.

  I also decided to change the use of EXTERN within the
  tcl*Decl.h files to be TCL_EXTERN() and take the return type
  as an argument as well.

  To check the viability of this modification, I appended
  __cdecl to the #defines like so:

  #define TCL_EXTERN(RTYPE) TCL_EXT_EXTERN_C TCL_STORAGE_CLASS
  RTYPE __cdecl
  #define TCL_INTERN(RTYPE) TCL_INT_EXTERN_C RTYPE __cdecl

  The patch does not contain this, as I don't feel it isn't
  needed, but was only used as a check should one day,
  additional attributes might be placed there (see tip#60
  prose; ignore the old patch it contains).

  Also used Daniel Steffen's idea to replace 'extern' with
  '__private_extern__' when declaring shared, but not exported
  functions.  It is untested and will need a configure check
  to set HAVE_PRIVATE_EXTERN.

  I decided to place the #define of EXTERN within a #ifndef
  TCL_NO_DEPRECATED/#endif block.  I can take it out of that
  block if it is thought not to be proper.

  Summary:  It looks good and the three classes of public,
  private, and internal look clear to me now.  I hope this
  helps others working on the core of the distinct difference
  between a private function in the Stubs table and an
  internal function not exported.  That distinction was never
  clear before.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  With patch:
  D:\tcl_workspace\tcl_head_mod\win>dumpbin /exports
  release\tcl85.dll | findstr
   /C:"number of"
           704 number of functions
           704 number of names

  Without patch:
  D:\tcl_workspace\tcl_head_stock\win>dumpbin /exports
  release\tcl85.dll | findstr
   /C:"number of"
           974 number of functions
           974 number of names


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  File Added - 107100: tkpatch.zip

  Logged In: YES 
  user_id=7549

  Just attached the matching patch for Tk.

  With patch:
  D:\tcl_workspace\tk_head_intern\win>dumpbin /exports
  release\tk85.dll | findstr
  /C:"number of"
           551 number of functions
           551 number of names

  Without patch:
  D:\tcl_workspace\tk_head_stock\win>dumpbin /exports
  release\tk85.dll | findstr /
  C:"number of"
           824 number of functions
           824 number of names


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Found this error:
          link -nologo -machine:IX86 -release -opt:ref
  -opt:icf,3 -opt:nowin98 -su
  bsystem:windows -out:".\Release\tktest.exe" kernel32.lib
  user32.lib gdi32.lib ".
  .\..\tcl_head_intern\win\Release\tcl85.lib"
  .\Release\tk_Dynamic\tkTest.obj .\Re
  lease\tk_Dynamic\tkSquare.obj
  .\Release\tk_Dynamic\testMain.obj .\Release\tk_Dyn
  amic\tkWinTest.obj ".\Release\tk85.lib"
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkpTestembedCmd
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextPrintIndex
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextSetMark
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextIndexBackBytes
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextIndexForwBytes
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextGetIndex
  tkTest.obj : error LNK2001: unresolved external symbol
  _TkTextMakeByteIndex
  .\Release\tktest.exe : fatal error LNK1120: 7 unresolved
  externals

  Same as Tcl, the test suite is accessing some internal
  function not in the private Stubs table.  tkpatch.zip is no
  good, will fix and post another.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  File Deleted - 107100: 



  File Added - 107104: tkpatch.zip

  Logged In: YES 
  user_id=7549

  tktest fixed.  Added those 7 to tkInt.decls.  It took a
  little type trickery with some forward declarations in
  tclInt.h, but looks safe.  Results are now with patch:

  D:\tcl_workspace\tk_head_intern\win>dumpbin /exports
  release\tk85.dll | findstr
  /C:"number of"
           558 number of functions
           558 number of names


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  KBK: Any comments or complaints?  Can I push them to the
  HEAD today?

  It's missing a configure check for __private_extern__
  support for MacOSX, but won't do any damage by it missing at
  this time.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902

  Focussing on the general principles of this patch (instead
  of the Tcl_Main controversy), I've updated tclInt.h to
  declare its symbols to be MODULE_SCOPE (== 'extern' at the
  moment) instead of EXTERN. If this causes problems for
  anyone, we can add extra things to tclInt.decls or reverse
  the decl for that particular item.

  I expect the Mac people will want to use a different decl of
  MODULE_SCOPE, either by overriding it in tclInt.h or by
  defining MODULE_SCOPE in the compiler command line defs (or
  whatever their equivalent is.)


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  That's a step a closer.  Does it make a difference between
  global variables?  Example after pre-processing:

  extern "C" int someFlag;
  extern "C" int __cdecl someFunc (int a, int b);

  If you just limit the #define of MODULE_SCOPE to just being
  the extern/extern "C" swapping or __private_extern__ where
  supported, the ability to set additional attributes that are
  placed after the return type is missed.  I'd like to see the
  MODULE_SCOPE macro take the return type as an argument so we
  have the ability to add additional attributes such as __cdecl.

  I'm not saying I think it is needed to specify __cdecl as it
  already is implied, but that position is available for
  attributes and would make a better macro.  See my TCL_INTERN
  macro in my patch of tcl.h.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  #ifdef __cplusplus
  #   define TCL_EXT_EXTERN_C extern "C"
  #   ifdef HAVE_PRIVATE_EXTERN
  #define TCL_INT_EXTERN_C __private_extern__ "C"
  #   else
  #define TCL_INT_EXTERN_C extern "C"
  #   endif
  #else
  #   define TCL_EXT_EXTERN_C extern
  #   ifdef HAVE_PRIVATE_EXTERN
  #define TCL_INT_EXTERN_C __private_extern__
  #   else
  #define TCL_INT_EXTERN_C extern
  #   endif
  #endif

  #define MODULE_SCOPE_FUNC(RTYPE) TCL_INT_EXTERN_C RTYPE
  #define MODULE_SCOPE_VAR TCL_INT_EXTERN_C

  MODULE_SCOPE_VAR int someFlag;
  MODULE_SCOPE_FUNC(int) someFunc (int a, int b);

  By just appending a function attribute such as __cdecl to
  the end of the #define of MODULE_SCOPE_FUNC, we get them in
  the right position.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  gcc can also set attributes after the arguments.  Just for
  fun I looked at trying to let a MODULE_SCOPE_FUNC macro try
  to support it:

  #define MODULE_SCOPE_FUNC(RTYPE, FNAME, FARGS)
  TCL_INT_EXTERN_C RTYPE __cdecl FNAME _ANSI_ARGS_(FARGS)
  __attribute__ ((used))

  __cdecl and __attribute__ ((...)) just placed there as space
  holders to show it's use for manipulating the positions.

  MODULE_SCOPE_FUNC(int, someFunc, (int a, int b));

  It's rather ugly and I wouldn't suggest it for the core, but
  was worth looking at just the same.
  http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Function-Attributes.html


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  dgp: regarding the change to tclInt.h (-r1.192) I just made..

  The following C++ source won't link statically:

  // test.cpp
  #include "tclInt.h"
  int
  main (void) {
      return tclFindExecutableSearchDone;
  }

  D:\tcl_workspace\tcl_head_stock\win>cl -nologo -MT
  -I..\generic test.cpp -link release\tcl85s.lib kernel32.lib
  user32.lib
  test.cpp
  test.obj : error LNK2001: unresolved external symbol "int 
  tclFindExecutableSearchDone" (?tclFindExecutableSearchDone@@3HA)
  test.exe : fatal error LNK1120: 1 unresolved externals

  I do expect that I can not have access to it when linking
  either through Stubs or the import library.  Though no C++
  is contained within the source of Tcl, static linking to
  access internals need not be turned off to C++ users.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  I did not intend to make
  tclFindExecutableSearchDone
  remarkable, or different in any
  way from Tcl's other global variables.

  If I made some mistake please correct
  it, because I confess I have little clue
  what you're getting at.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  Just did a rebuild and got:
  D:\tcl_workspace\tcl_head_stock\win>dumpbin /exports
  release\tcl85.dll | findstr
   /C:"number of functions"
           753 number of functions


  There seems to be 99 functions leaking into the export
  table.  I would have expected 704 instead.  I'll search
  through, find and report..


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  dpg: I didn't mean to respond that you were doing anything
  wrong, just that the function declarations aren't yet
  perfect, but much closer.  I'm seeing the classifications
  for scope more clearly:

  1) Public: Full access through either Stubs or dynamic linking.
  2) Private: Full access through either Stubs or dynamic
  linking but only when including tclInt.h (either client or
  core) and contains the additions of functions and types not
  considered part of the "stable" core.
  3) Internal: No access through either Stubs or dynamic
  linking unless linking statically by a client of the API or
  by being a source file within the core.

  I missed the issue about static linking previously and glad
  I just found it.  The differences between #2 and #3 had
  never been clear before, but has much improved today with
  your commit of MODULE_SCOPE.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902

  Yes, I can confirm that I'm not dgp. :^)

  Looks like these symbols (from the regexp engine) need fixing:
    TclReComp
    TclReError
    TclReExec
    TclReFree
  The way they're declared is pretty gross though. :^(

  There are also some nasties in unix/tclUnixPort.h, but I'll
  leave them alone for now.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  And I can confirm I got you two mixed-up.

  Yeah, those RE ones look difficult to modify.  As it stands,
  things look good.  We should bounce with Daniel about MacOSX
  usage with __private_extern__, then call this report done ;)


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  dkf: Can I move the #define of MODULE_SCOPE to tcl.h? 
  Providing this macro to extensions seems like a good thing
  (Tk specifically).  If so, we might want to consider a name
  change as MODULE_SCOPE isn't prefixed TCL_ to show its origin.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902

  I'm in two minds about it.  In particular, I feel that
  MODULE_SCOPE is already rather longer than I like. :^) Also,
  it's not part of the Tcl API; it's denoting bits that are
  not part of the API.

  It might just be better to copy it in tkInt.h and make sure
  that any configure requirements we end up with are
  propagated as well.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  If I did copy it to tkInt.h, it seems ripe for factoring up.
  TCL_INTERN saves 2 characters.


login: davygrvy
username: davygrvy
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=7549

  New problem found with #include "tclPort.h"

  In one of my extensions on windows, I use tclPort.h as my
  front include so I get the error codes (EWOULDBLOCK, etc..),
  but I don't require any internals.  Problem found with
  MODULE_SCOPE not being defined.

  Can I move it to tcl.h?


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  I don't think that Tcl nor Tk is the place to fix this: MODULE_SCOPE
  is a symbol defined by TEA, so it should be fixed there.

  TEA currently has the problem that MODULE_SCOPE is only
  defined when needed. That means that all extensions which
  use this, need to put in some header file:
  #ifndef MODULE_SCOPE
  #   define MODULE_SCOPE extern
  #endif

  Here is a patch to tcl.m4 which fixes this. The configure
  script (after re-generation), will always define
  MODULE_SCOPE. Changed
  the category to tclconfig.


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  allow_comments - 1

  There isn't any EXTERN in tclInt.h
  anymore (in Tcl 8.6), and tclInt.h
  currently defines MODULE_SCOPE
  if it is not defined yet.

  Therefore, I consider this ticked fixed.


login: rebum
username: rebum
mimetype: text/plain
icomment:
  File Added - 211669: tcl.m4.patch

  Logged In: YES 
  user_id=41220
  Originator: YES

  I removed the patch attached and replaced it by a new one.

  Inspiration:

  Patch for TCL configure in the FreeBSD ports tree
  ports/lang/tcl84/files/patch-configure:
  http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/tcl84/files/patch-configure?rev=1.10&content-type=text/x-cvsweb-markup

  PTHREAD_CFLAGS and PTHREAD_LIBS are initialized in ports/Mk/bsd.port.mk:
  http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk?rev=1.545&content-type=text/x-cvsweb-markup

  SHLIB_MAJOR in src/share/mk/bsd.lib.mk, it is commonly used in FreeBSD ports:
  http://www.freebsd.org/cgi/cvsweb.cgi/src/share/mk/bsd.lib.mk?rev=1.179&content-type=text/x-cvsweb-markup
  File Added: tcl.m4.patch


login: rebum
username: rebum
mimetype: text/plain
icomment:
  File Added - 211674: tcl.m4.patch

  Logged In: YES 
  user_id=41220
  Originator: YES

  File Added: tcl.m4.patch


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Patch no longer applies to the HEAD nicely, and possibly interferes with NetBSD or ancient FreeBSD support. Suggested new patch (distilled from the old one except in a slightly different way) attached; let me know if it is right and I'll get it applied ASAP.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  BTW, my patch should bring tcl.m4 into alignment with that used in the most current ports. (Thanks for the link, that let me check this directly.)


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Applied to HEAD and TEA. Since this is the configuration that is used in FreeBSD builds (and it looks very good) I've not had to spend so long hanging around waiting for confirmation.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Probable cause of the problem:  the line

  | eval "TCL_LIB_FILE=${TCL_LIB_FILE}"

  (configure.in r1.125 line 448), which was removed in r1.126,
  is actually used for more than just expanding ${TCL_DBGX}. 
  In particular, if TCL_LIB_VERSIONS_OK is set to "nodots", it
  contains other shell escapes.

  Attached patch attempts to fix the problem by restoring this
  line.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Followup: Double-eval is also required for TCL_STUB_LIB_FILE.

  We should really consider handling this TCL_TRIM_DOTS /
  TCL_LIB_VERSIONS_OK / TCL_{UN}SHARED_LIB_SUFFIX mess
  differently.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Patch confirmed.  Also checked tk/unix/configure.in for
  similar issues; no double-evals were removed in the DBGX
  purge, Tk CVS HEAD compiles OK on NetBSD.

  What's not clear is whether NetBSD even needs to use
  ${TCL_TRIM_DOTS} anymore, but that's an issue for another time.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Reopening -- I have autoconf 2.59, not 2.57, so can't
  regenerate the configure script.  Jeff, could you take care
  of this?  Thanks.

  (BTW, why are we using 2.57?)


login: dgp
username: dgp
mimetype: text/plain
icomment:
  data_type - 360894

  Logged In: YES 
  user_id=80530


  Committed the generated
  unix/configure file.

  Moving this report over to
  a Feature Request.  Let us please
  find a way to solve these problems
  without using an "eval".  

  Getting rid of the double 
  substitution was going to be
  an important step toward fixing
  Bug 553544.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  > Is there anything here to fix?

  Not that I'm aware of.  It would be _nice_ to get rid of all
  the double-evals in configure.in, but not _necessary_ afaict.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  the remaining request here
  (re-opening) is to get rid of 
  any remaining "eval"s in
  configure.in / tcl.m4 .

  Most of the eval's were there
  originally to substitute $(TCL_DBGX),
  but that's gone now. so they
  ought to be able to go too.

  The presence of eval's makes
  it more difficult to solve the
  problem of handling spaces in
  pathnames (554348).


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  I'm  sorry, but I don't see how checkin 30736d63f0 changed
  anything about CFLAGS, nor I really understand the
  problem. So, Stuart, please just make the modifications
  you would want, and I will check whether it breaks
  any of the cross-compiling support that 30736d63f0
  adds. That probably is the fastest way to resolve this
  issue. I don't have any objections to setting
  CFLAGS to empty if it is not set.

  Regards,
          Jan Nijtmans


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  Assigning back to me, because I'm starting to see the problem.

  Normally, configure scripts to the following:
  TEA_INIT
  ....
  TEA_LOAD_TCLCONFIG
  ...
  TEA_SETUP_COMPILER

  (just the relevant ones for this analysis)

  One of the difficulties in cross-compilation support is that TEA_INIT
  no longer is able to determine whether we are on win32 or unix,
  so it was moved to TEA_LOAD_TCLCONFIG. Doing that
  it needs AC_TRY_COMPILE, determining whether the
  compiler sets _WIN32 or not, that's the only reliable way
  to determine that.

  Previously,  TEA_SETUP_COMPILER was the first
  macro which called the compiler, that;s where the
  CFLAGS were set for the first time.

  So, possible solution: repeat the given lines
  in the TEA_LOAD_TCLCONFIG macro as
  well, that should fix this.


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  > So, possible solution: repeat the given lines
  > in the TEA_LOAD_TCLCONFIG macro as
  > well, that should fix this.
  That approach didn't work, it's not clear to me why. But
  found a simpler solution. The problem here was that
  the AC_TRY_COMPILE simply did too much things
  we don't want, so I replaced the AC_TRY_COMPILE
  macro call with just the small part we need.

  Stuart, please verify that things are correct now.
  So thread/Itcl/tdbc's configure scripts can all
  be regenerated for inclusion in Tcl 8.6b3.


login: stwo
username: stwo
mimetype: text/plain
icomment:
  I've moved the CFLAGS test/set to TEA_INIT and restored your previous code.
  Doing the check as early as possible should be the best way though sadly the code had a fine and better home in TEA_SETUP_COMPILER_CC.
  Tcl and Tk also do the check early.
  This is more fallout from the cygwin changes; I hope it's worth it. /:


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  allow_comments - 1

  >This is more fallout from the cygwin changes; I hope it's worth it. /:
  It's not only Cygwin, you can now cross-compile win32
  TEA extesnions on Darwin or Linux as well, just
  out-of-the-box ;-) So, yes it's worth it.

  Anyway, tried it on Cygwin, and it appears to work fine.
  Thanks! Didn't expect it to be that simple.....


login: gregcouch
username: gregcouch
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=131838
  Originator: YES

  Upon further review, this won't be needed until there are patches to Tcl and Tk to build automatically --with-x on Windows with the cygwin environment (I tweeked the builds by hand to get this bug).


login: sf-robot
username: sf-robot
mimetype: text/plain
icomment:
  This Tracker item was closed automatically by the system. It was
  previously set to a Pending status, and the original submitter
  did not respond within 14 days (the time period specified by
  the administrator of this Tracker).


login: dkf
username: dkf
mimetype: text/plain
icomment:
  It should be noted here that it's not been recommended to use TCL_DEFS for some time; they represent Tcl's build configuration, not some extension's. That said, it used to work (at least somewhat) so this is a regression.


login: das
username: das
mimetype: text/plain
icomment:
  This only happens when you use the incorrect buildsystem, specifically the configure in macosx. This enables use autoheader-generated tclConfig.h and is only there to support building tcltest from the Xcode project for debugging.

  Please follow the instructions in tcl/macosx/README on how to build, i.e. either use macosx/GNUmakefile or the unix/configure directly.


login: mthuurne
username: mthuurne
mimetype: text/plain
icomment:
  @das: Indeed the problem does not occur when using the "unix" configure instead of the "macosx" one, as TCL_DEFS does not refer to tclConfig.h then. Thanks for the suggestion.

  @dkf: I'm not compiling an extension, I'm compiling a program that embeds the Tcl interpreter. It is unclear to me exactly which variables I should use for that and I haven't been able to find any relevant documentation. Currently I'm using TCL_DEFS and TCL_INCLUDE_SPEC. If that is wrong, please tell me what I should use instead or point me to the docs.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656

  There are a few libraries that make use of pthreads and rely
  on TEA (like sqlite), so I'd rather leave it in.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Just a followup -- sqlite does use pthreads, but it doesn't
  use the THREADS_LIBS macro (or anything else thread-related
  from TEA); it has its own autconferry for this.

  I can't find any extensions that do use THREADS_LIBS (at
  least on purpose).


login: sf-robot
username: sf-robot
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=1312539
  Originator: NO

  This Tracker item was closed automatically by the system. It was
  previously set to a Pending status, and the original submitter
  did not respond within 14 days (the time period specified by
  the administrator of this Tracker).


login: das
username: das
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90580

  Don,

  fully agree, I have been meaning to make TEA more MacOSX aware for a 
  while, the main problem is finding the time to do the work...

  currently you have to configure TEA on Mac OS X as follows for best 
  results
  ./configure --libdir=/Library/Tcl \
              --with-tcl=/Library/Frameworks/Tcl.framework --with-
  tclinclude=/Library/Frameworks/Tcl.framework/Headers \
              --with-tk=/Library/Frameworks/Tk.framework --with-
  tkinclude=/Library/Frameworks/Tk.framework/Headers

  certainly the "include" flags values could easily be derived by TEA from 
  the locations of tcl and tk, and the frameworks locations should be 
  additional places TEA checks for Tcl/Tk by default.

  finding the correct value for libdir is more difficult, this is set on macosx 
  by compiling with a value of TCL_PACKAGE_PATH that could potentially be 
  different from build to build. /Library/Tcl is just the current default in tcl/
  macosx/Makefile.
  This is a problem on other platforms as well, probably the value of 
  TCL_PACKAGE_PATH should be preserved in tclConfig.sh, or TEA could use 
  tcl to get the value of tcl_pkgPath, not sure what the best solution is.


login: das
username: das
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90580

  BTW, the reason the wish auto_path is not a superset of the tclsh 
  auto_path is because these executables are necessarily located in different 
  places in the filesystem, we cannot avoid that due to platform 
  specificities.
  because tcl init code derives part of the default auto_path from the 
  location of the executable, these parts end up being different in tclsh and 
  wish. The same thing happens on other platforms is you move tclsh and 
  wish to different directories...


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  Is it possible to have
  [load]-able (that is,
  [package require]-able)
  Tk in tclsh on Mac OSX?

  Or are we stuck on that
  system to use wish for
  Tk-using programs?


login: das
username: das
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90580

  a loadable Tk is not easily possible at present due to several 
  technical issues, this has been discussed a number of times in 
  detail on tcl-mac in the past. Some of these issues are in the 
  current tk aqua startup code which could be fixed with some 
  work, others are OS specific and might be fixed in a future 
  release of the OS or could be worked around by us.
  With a fair amount of work I suspect it would be possible to 
  implement loadable Tk, but it hasn't been high on anybody's list 
  of priorities...


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530

  I think [load]-able Tk on Aqua
  got done, so perhaps it's time
  to look into this again?


login: das
username: das
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90580

  Jeff,

  TEA should still be smarter about the framework build of tcl/tk on OSX, i.e. 
  it should look for t{cl,k}Config.,sh in /Library/Framework/T{cl,k}.framework 
  if it is not found in /usr/lib etc,
  also, when in presence of a framework build (i.e. *Config.sh inside a 
  .framework) the include dirs should automatically be set to the .framework/
  Headers dirs.


login: das
username: das
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90580

  the attached patch adds changes to tcl.m4 to better support framework 
  builds of Tcl and Tk out of the box:
  search framework install locations for *Config.sh, and if in presence of a 
  framework build, use the framework's Headers and PrivateHeaders 
  directories for public and private includes.

  this means that a standard /configure; make of a TEA extension now 
  works on Darwin with just Tcl.framework installed in one of the standard 
  framework directories

  committed the patch to tclconfig


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  Here's a patch.  If this looks
  acceptable, similar changes to
  TEA_PUBLIC_TK_HEADERS
  should also be done.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  Looks reasonable -- but is there any reason to check in
  ${TCL_BIN_DIR}/../include (i.e., relative to the location of
  tclConfig.sh)?


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  this just bit me again.
  taking action...

  Updated patch covers Tk
  header search as well as Tcl.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  allow_comments - 1

  Corrected core tcl.m4 and TEA tcl.m4 for OSF1-V* case.  For TEA, I made '${LIBS}' the default, but for the core I adjusted just OSF1-V*.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  dgphttp://tcl.cvs.sourceforge.net/viewvc/tcl/sampleextension/Makefile.in?r1=1.64.2.4&r2=1.64.2.5
  dgpThat's the corresponding sampleextension change...
  dgp...which supposedly every TEA-using extension is supposed to copy when they update their tclconfig past this commit.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Looks like some kind of mix up between whether things are being compiled as internal and whether they are being compiled as external. No idea why that would happen.

  (BTW, to check whether you have the real latest version, check whether generic/tclOOMethod.c is at version 1.32 - the version number is in the head comment in the file - and if it isn't, I'm going to need version numbers for quite a few files as I'm not 100% sure what you're actually using...)


login: tombert
username: tombert
mimetype: text/plain
icomment:
  The version for release 0.6 of file tclOOMethod.c is 1.29
  Now I took the HEAD of oo and tried again - unfort. the same result (attached).
  Is there anything I need to take care when compiling tcl? The only switch I enabled was --enable-threads
  thx


login: tombert
username: tombert
mimetype: text/plain
icomment:
  Release 0.4 builds and installs without error (file attached). With release 0.5 I have errors as well.


login: tombert
username: tombert
mimetype: text/plain
icomment:
  Tested version 0.6 in openSuse 11.3 (developer version) - builds without error. So it seems to be win7, mingw and minsys related ...


login: dkf
username: dkf
mimetype: text/plain
icomment:
  0.6 is the version that matches what was released with Tcl 8.6b1 but that was quite a long time ago :-( so I don't recommend getting anything before 0.6.2 which is the current CVS HEAD. I know that's not obvious, but then I didn't imagine that it'd be so long from 8.6b1 to the next Tcl release.

  There are several bug-fixes in 0.6.2 that are not present in 0.6. It also uses an up-to-date TEA build system (no idea about 0.6). Since it's really a build system problem (TclOO is really very close to conventional there) I'll have to refer this to someone else. (Build systems aren't my thing, to be honest.)


login: tombert
username: tombert
mimetype: text/plain
icomment:
  You are talking about version 0.6.2 - does this have a tag? The only tags I see are:
  release-0-6, release-0-5, release-0-4 ... but no 0.6.2
  I'll try again with HEAD ...


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  I haven't found a system linker where this is true testing with tktable.  What system showed this behavior?


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  Looking at the patch, it reverses the order of linking the Tcl
  and Tk stub libraries. Tk's stub library accesses Tcl's stub
  library, but the extension being compiled will do it as well,
  so in practice it will never be a problem.

  I don't think this is a bug, but just a style issue. It looks
  better to always link Tk-related things before Tcl-related
  things, but that's all


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  This is by design. Extensions should not link with libtcl8.6.so, only with
  libtclstub8.x.a, this way the extension becomes runnable with
  whatever (compatible) Tcl version is available. The TEA
  (Tcl Extension Architecture) system handles just that.

  There is work ongoing to make the stub library unversioned
  (tclstub.a), but that work is not complete yet. Expected
  (hopefully) in Tcl 9.0


login: roflz
username: roflz
mimetype: text/plain
icomment:
  note that even creating libtcl.so.8.6 would be sufficient to link against -ldl

  i wonder why tcl does things different than anybody else for no good reason


login: roflz
username: roflz
mimetype: text/plain
icomment:
  ah thanks, good to know. my irc chat plugin needs to link against libtcl, and this turned out to be crazy difficult with standard approaches.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  The problem is that different platforms have different rules; it's really irritating when one is stuck between one group of loud people insisting that certain features are removed, another group that they work in method A out of the box, and a third group that want things to use method B. The only way to accommodate such things is by putting a horrible chunk of disgusting code in the autoconf-based machinery to adapt to all of these things (note that it's not done just by platform; the requirements of distributors, sysadmins and ordinary users on the same platform in this area are wildly divergent). The adding of the correct extra symlinks in the right places for a particular linux distribution is left to the distro's packaging maintainer.

  As it happens, we don't really recommend such relinking as you refer to except within a "minor" version series (one of which has 8.6.0 as the first member) because some functions have changed API/ABI mappings between versions. (Pure API or ABI compatibility is maintained through the use of stubbed linking, but some of the things done by general dynamic linkers are not.)

  I imagine that libtcl ought to go on your platform as libtcl8.6.so.0.0 or something like that, but I've not really thought about that. (Also, not that we consider it fine for a single system to have and make available 8.4, 8.5 and 8.6 at the same time; Tcl's designed to support that sort of thing. And commercial uses of Tcl will probably bind to a specific library instance at build time rather than allowing relinking; having a known baseline beats saving disk space.)


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  to clarify, is this report
  about Tcl's tcl.m4, or the
  TEA tcl.m4?  or both?


login: wart
username: wart
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=244388

  This isn't a problem with the core Tcl package, but with the
  tcl.m4 used in TEA extensions.  I wasn't sure where the
  canonical tcl.m4 file was stored, so I filed the bug here.

  Note that this is also a problem with the tcl.m4/configure
  script in Tk.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Adding to core (8.5 and head) tcl.m4 and TEA 3.8 tcl.m4, where /usr/lib is search, /usr/lib64 follows.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  turns out this is fairly easy
  to workaround.  Just have
  a foo.tcl file in place (it can
  even be empty).  That will
  satisfy the TEA_ADD_TCL_SOURCES
  testing, and at the end of
  the configure, the correct contents
  will still be generated from foo.tcl.in


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  It appears that such generated
  files are not meant to be used
  as arguments to TEA_ADD_TCL_SOURCES.

  When the build directory is different
  from the source directory (common 
  case) the custom-configured generated
  file will be produced in the build dir, but
  the original in the source dir will be
  the copy that gets installed.

  Looks like the Makefile.in has to
  be customized in circumstances
  like this to explicitly install the
  generated file.


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433
  Originator: NO

  Probably can't change the help text; you get that for free from autoconf whether you want it or not.

  However, for Tcl extensions, --prefix, --exec_prefix, and all of the subsidiary install directories are superfluous: the only installation directory TEA uses is $(pkglibdir).

  $(pkglibdir) is normally specified as a subdirectory of $(libdir) in Makefile.in; $(libdir) in turn defaults to ${exec_prefix}/lib; and ${exec_prefix} is set to ${TCL_EXEC_PREFIX} by the TEA_PREFIX autoconf macro.  (The value of TCL_EXEC_PREFIX is found in tclConfig.sh; it's set to the value of @exec_prefix@ used when configuring Tcl.)


login: pointsman
username: pointsman
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=13222
  Originator: YES

  No, --prefix and --exec_prefix are not superfluous at all for a Tcl extension. I love it, that I have the freedom, to compile my extenstion against a certain tcl installation (given by --with-tcl) and to install the result in a place of my choice, other than $(pkglibdir). Yes, I handle the auto_path manipulation, to get the extension version, I want, don't care about that.

  That is currently possible, and that's fine. In case of an extension with binary code, the user just has to provide both, --prefix and --exec-prefix. Although the help suggests, that the --exec-prefix default is set from the --prefix value. With isn't true. Nitpik.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Actually Tcl's TEA_PREFIX does set exec_prefix to prefix, but it may be that autoconf (which handles this at a meta level) does it's own magic.  A patch for what you intend against TEA_PREFIX would be good.  Otherwise it is working as expected.


login: kennykb
username: kennykb
mimetype: text/plain
icomment:
  'stu', 'rkeene' and 'pooryorick' on the Tcl'ers Chat today indicate that this behaviour is still a problem, and promise more information.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  The sample extension shows how to do auto-gen or hand-crafted pkgIndex.tcl, and I've assisted both styles for other extensions.  I don't think this is valid for the latest sample cvs.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  A TEA package can currently achieve
  this by changing the line

  TEA_ENABLE_THREADS

  in configure.in to

  TEA_ENABLE_THREADS([yes])


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  TEA 3.1 appears to make
  --enable-threads the default
  when it detects configuration
  against a --enable-threads Tcl.

  That's not quite what's requested
  here, but it's a big step in that direction.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  It's a bit strange that TEA 3.1
  posts a warning during configure
  whenever one tries a --enable-threads
  configuration on an extension while
  Tcl was configured --disable-threads.

  This should be a safe combination;
  not clear to me what the warning is for.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656

  The warning is that you aren't really thread-safe until you
  run it on a threaded Tcl.


login: nijtmans
username: nijtmans
mimetype: text/plain
icomment:
  Slightly related: defining BUILD_$1 on all platforms - not only win -
  allows the -fvisibility feature to be used in extensions as well, at
  least if you compile against tcl >= 8.5.

  Checked in tclconfig HEAD.

  Kevin, is this what you mean? (I cannot really test it, but at least it looks harmless)


login: jcw
username: jcw
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=1983

  The make-not-making problem can be solved by changing:

    VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win

  to

    VPATH = $(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win

  Have not looked at how to solve pkgIndex.tcl rebuild yet.


login: jcw
username: jcw
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=1983

  Hm, that didn't work.  Watch: (Makefile.in contains the original line)

  From the main dir itself, Makefile ends up with (GOOD!):
    VPATH = $(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
  From another dir, that same Makefile.in produces this (BAD!):
    VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win

  Ok, so maybe configure wants to include the top always, and drops it 
  explicitly when already in the top?  When I change Makefile.in to:
    VPATH = $(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
  The in the orig dir, this ends up in Makefile (BAD!):
    VPATH = /generic:$(srcdir)/unix:$(srcdir)/win
  In another dir, it produces (GOOD!):
    VPATH = $(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win

  Looks like ya just can win with the current autoconf/makefile logic.

  I've changed it as follows in Makefile.in for now:
    VPATH = $(srcdir)/generic:$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
  With that double entry, I get this Makefile in the orig dir:
    VPATH = /generic:$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win
  And this Makefile elsewhere:
    VPATH = $(srcdir)/generic:$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win

  Clearly a hack, but it works for me.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656
  Originator: NO

  The extension writer should modify CLEANFILES setting in configure.in depending on whether pkgIndex.tcl.in is used or it is hand-rolled in the Makefile.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656
  Originator: NO

  The TEA_VERSION matching with TEA_INIT was added primarily to give users an indication about whether their configure.in is in sync with the tcl.m4 they have obtained (through 'cvs up', copy or whatever).  With updates to TEA that have required compatibility changes (which are few), an update has been sent to the tcl-core mailing list.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  allow_comments - 1

  I'm going to confirm that since it is only a warning (which the extension dev would see in testing), that this is the behavior I'm looking for.  I want recognition of the new version acknowledged (by adapting configure.in).  Even though this might mean no other changes are required (such as TEA 3.7 -> 3.8), it is just a confirmation of the process.


login: jan.nijtmans
mimetype: text/x-fossil-wiki
icomment:
  Fixed in [23f89dce77]

  HAVE_CAST_TO_UNION is not meaningless outside of Windows, but HAVE_NO_SEH, EXCEPTION_DISPOSITION and HAVE_WINNT_IGNORE_VOID are. Those tests are skipped now when not running on Windows.


login: mdejong
username: mdejong
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90858

  This is a serious issue. The TEA_PROG_TCLSH macro is lacking
  a way to find the tclsh executable in the build directory.
  People are
  using the macro for two different things. First, to find a
  tclsh on the
  system. Second, to find the tclsh in the build dir. I have
  attached
  a patch that fixed the thread package WRT this tclsh search
  issue.
  Another possible approach would be to create two macros, one
  that
  searches the PATH (and NOT in the build dir) and another
  that just
  searches in the build dir. Note that the current macro
  mistakenly assumes that tclsh would even be built in the
  build dir when the child package is getting configured.


login: mdejong
username: mdejong
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90858

  This is now fixed in the HEAD and the 8.4 branch.
  See Tcl patch 1244153 for all the details and patches.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  re-opening.

  The additional TEA_BUILD_TCLSH
  macros may help someone, but it
  doesn't fulfill the needs of this
  feature request.

  As an extension author, I need a
  reliable and simple way to say
  "give me a tclsh that corresponds
  to the tclConfig.sh file I'm using".
  My original complaint was that
  TEA_PROG_TCLSH doesn't
  do that reliably.

  Now TEA_BUILD_TCLSH arrives
  and also doesn't do that reliably
  (why would I assume a build
  directory of Tcl is even on the system?)

  This is a step backwards.  TEA should
  give me one thing that works, not two
  half-measures that every extension author
  has to assemble (mostly incorrectly).


login: mdejong
username: mdejong
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90858

  TEA was using TCLSH_PROG for two different things.
  It could be executed at build time to generate a pkgIndex.tcl
  or it could have been used to run the tests. The change splits
  this functionality into two macros.

  The only other logical thing would be to remove TCLSH_PROG
  entirely and make sure that the tclsh executable was only
  used to run tests (when not cross compiled). When it comes
  to running the tests, the only logical thing to do is run them
  against the tclsh that was just built in the Tcl build dir.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  We must distinguish between
  Tcl build time and extension build time.

  TEA is for extensions.  When my extension
  is using TEA to set up things for building
  the extension, there's no reason to expect
  there's any build directory around from the
  building of Tcl.  In the normal case there is
  no "tclsh that was just built".  But there ought
  to always be "a tclsh that corresponds to the
  tclConfig.sh I am using."

  If TEA_FOO_TCLSH have been copied
  over from their SC_FOO_TCLSH
  counterparts uncritically without accounting
  for the different needs of extension from
  the needs of Tcl's own build scripts, then
  yes perhaps there's some undoing to be done.

  The particular need I have for a more
  appropriate TEA_PROG_TCLSH is to
  find a program suitable for running my
  extension's test suite.


login: mdejong
username: mdejong
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90858

  OK, how about the following patch? It nukes BUILD_TCLSH and
  sets TCLSH_PROG to either the build tclsh or the tclsh installed
  into the bin dir. There is no PATH searching in this
  approach so no
  chance of picking up a bad tclsh or wish shell.


login: dgp
username: dgp
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=80530


  Yes, I like that much better.  Thanks.

  An additional version number check
  might offer even more safety, but
  the patch attached is a fine improvement.

  Guess we should apply it to find out
  who prefers the existing TEA_PROG_TCLSH. :^)


login: mdejong
username: mdejong
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=90858

  Added to CVS on 2005-07-26. Checked into tclconfig/,
  sampleextension/, and thread/ packages. The only change an
  extension will need to deal with
  is creating a pkgIndex.tcl.in file and generating a
  pkgIndex.tcl and configure time. This is needed since
  TCLSH_PROG should not be used
  for generation of things at build time. The only thing a
  version check
  would do is check that the version in tclConfig.sh is the
  same as the
  version of the tclsh installed in the bin dir. But, the code
  really does
  that already since the path of the tclsh in the bin dir is
  deduced via
  the TCL_VERSION and TK_VERSION flags found in either
  tclConfig.sh or tkConfig.sh. Also, you can't assume that the
  tclsh
  executable can be run to do a version check, that will not
  work in
  a cross compile.


login: dkf
username: dkf
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=79902
  Originator: NO

  Pat, you were the last person poking around here IIRC.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  I'm not sure this doesn't simply fall outside standard TEA.  My recommendation is that in such cases, VPATH should be manually extended.  The reason is that the basename call is done to ensure that the object ends up in the build dir, and not a subdir.


login: sf-robot
username: sf-robot
mimetype: text/plain
icomment:
  allow_comments - 1

  This Tracker item was closed automatically by the system. It was
  previously set to a Pending status, and the original submitter
  did not respond within 14 days (the time period specified by
  the administrator of this Tracker).


login: jenglish
username: jenglish
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=68433

  More info:

  "/GD" supposedly means "Optimize for Windows DLL", but
  according to the manual it's also "Reserved for future use".
   Apparently a no-op in VC6 and earlier; not supported at all
  in VC7.

  "-link50compat" isn't needed for TEA extensions under normal
  circumstances to begin with: it's only useful if the
  extension (a) builds an import library (either for the
  extension itself or for a stub library) that (b) needs to be
  compatible with older Windows compilers.

  "-YX" generates a *.PCH file under VC6; it's not supported
  under VC7, and is not necessary even under VC6.  VC6 users
  who really want the *.pch file can use "CFLAGS=-YX" at
  configure-time to reenable this feature.

  LIB.EXE does not seem to be included in MSVC7;  LINK /LIB
  should work for VC6 and earlier versions as well as VC7.

  It might be worthwhile to also remove "/MD" ("link with
  MSVCRT"), but I'm not sure of the full ramifications of
  this.  Since LIBTCLSTUB.LIB already has a DEFAULTLIB:MSVCRT
  dependency, it might not do any good anyway.


login: hobbs
username: hobbs
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=72656

  I've never seen --enable-symbols fail, but since he
  mentioned SuSE for building, I'm passing this on to Reinhard
  for verification.


login: rmax
username: rmax
mimetype: text/plain
icomment:
  Logged In: YES 
  user_id=124643

  No recent SuSE release shipped with autoconf 2.13. So it
  looks like he screwed it up himself. The only help I can
  offer is a small patch against tcl.m4 to make it acceptable
  for newer versions of autoconf. That patch has been part of
  SuSE's Tcl source RPMs for quite some time.


login: jan.nijtmans
mimetype: text/x-fossil-wiki
icomment:
  Fixed in [9fb41ed228]. Just one remark: It's better to check 8.6 before 8.5 implicitly (the only two supported versions), otherwise if both are installed the one chosen depends on the order produced by the ls command.


login: stwo
username: 3d0g@bell.net
mimetype: text/plain
icomment:
  Can't attach! Here's the patch.

  Index: tcl.m4
  ==================================================================
  --- tcl.m4
  +++ tcl.m4
  @@ -3208,18 +3208,23 @@
       # in this macro, they need to go into TEA_SETUP_COMPILER instead.
   
       AC_PROG_CC
       AC_PROG_CPP
   
  -    INSTALL="\$(SHELL) \$(srcdir)/tclconfig/install-sh -c"
  +    INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c'
  +    INSTALL_DATA_DIR='${INSTALL} -d -m 755'
  +    INSTALL_DATA='${INSTALL} -m 444'
  +    INSTALL_PROGRAM='${INSTALL} -m 555'
  +    INSTALL_SCRIPT='${INSTALL_PROGRAM}'
  +    INSTALL_LIBRARY='${INSTALL_DATA}'
  +
       AC_SUBST(INSTALL)
  -    INSTALL_DATA="\${INSTALL} -m 644"
  +    AC_SUBST(INSTALL_DATA_DIR)
       AC_SUBST(INSTALL_DATA)
  -    INSTALL_PROGRAM="\${INSTALL}"
       AC_SUBST(INSTALL_PROGRAM)
  -    INSTALL_SCRIPT="\${INSTALL}"
       AC_SUBST(INSTALL_SCRIPT)
  +    AC_SUBST(INSTALL_LIBRARY)
   
       #--------------------------------------------------------------------
       # Checks to see if the make program sets the $MAKE variable.
       #--------------------------------------------------------------------


login: pooryorick
username: pooryorick
mimetype: text/x-fossil-wiki
icomment:
  <verbatim>
  Index: tcl.m4
  ==================================================================
  --- tcl.m4
  +++ tcl.m4
  @@ -2879,18 +2879,26 @@
   	CFLAGS=""
       fi
   
       case "`uname -s`" in
   	*win32*|*WIN32*|*MINGW32_*)
  -	    AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
  +	    AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo)
   	    EXEEXT=".exe"
   	    TEA_PLATFORM="windows"
   	    ;;
   	*CYGWIN_*)
  -	    CYGPATH=echo
  +	    # Maybe we are cross-compiling
   	    EXEEXT=".exe"
   	    # TEA_PLATFORM is determined later in LOAD_TCLCONFIG
  +	    case ${host_alias} in
  +		*mingw32*)
  +		    AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo)
  +		;;
  +		*)
  +		    CYGPATH=echo
  +		;;
  +	    esac
   	    ;;
   	*)
   	    CYGPATH=echo
   	    # Maybe we are cross-compiling....
   	    case ${host_alias} in
  @@ -4095,15 +4103,15 @@
   	eval $1_STUB_LIB_FLAG="-l$1stub${PACKAGE_VERSION}${DBGX}"
       else
   	eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
   	eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
       fi
  -    $1_BUILD_LIB_SPEC="-L`pwd` ${$1_LIB_FLAG}"
  +    $1_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${$1_LIB_FLAG}"
       $1_LIB_SPEC="-L${pkglibdir} ${$1_LIB_FLAG}"
  -    $1_BUILD_STUB_LIB_SPEC="-L`pwd` [$]{$1_STUB_LIB_FLAG}"
  +    $1_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` [$]{$1_STUB_LIB_FLAG}"
       $1_STUB_LIB_SPEC="-L${pkglibdir} [$]{$1_STUB_LIB_FLAG}"
  -    $1_BUILD_STUB_LIB_PATH="`pwd`/[$]{PKG_STUB_LIB_FILE}"
  +    $1_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)/[$]{PKG_STUB_LIB_FILE}`"
       $1_STUB_LIB_PATH="${pkglibdir}/[$]{PKG_STUB_LIB_FILE}"
   
       AC_SUBST($1_BUILD_LIB_SPEC)
       AC_SUBST($1_LIB_SPEC)
       AC_SUBST($1_BUILD_STUB_LIB_SPEC)
  </verbatim>


login: jan.nijtmans
mimetype: text/plain
icomment:
  Thanks! Actually, I have the building environment working to cross-compile with mingw under cygwin, but I tweaked the environment a little bit to accomplish this. Your patch looks like a better solution.


login: hypnotoad
mimetype: text/plain
icomment:
  Added /usr/pkg/lib to the paths searched.

  Checked in with release:

  c8eddeddb9bbabc4de5c4b9b36293dd683a3ad94


login: hypnotoad
mimetype: text/plain
icomment:
  I scanned the source code of every package used my IRM and Androwish, and I've determined there are no TEA extensions that are making use of the macro.


login: hypnotoad
mimetype: text/plain
icomment:
  Removed the macro from tcl.m4 in checkin:

  [d25e5c06914cb5bd104ab17bcc21567810038bdd20366a77584915b3716405a4]

  If anyone was using this, it was the wrong way to determine the dependencies of the Tcl core. The Tcl for already tells you what it wants in tclConfig.sh


login: jan.nijtmans
mimetype: text/plain
icomment:
  Since this change broke - somehow - tclsqlite and thread, I had to revert it. So, something better needs to be invented to fix this. Sorry!


