Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5104cf2a07 | ||
|
|
54ae4feac8 | ||
|
|
a2c5ea2c08 | ||
|
|
a3daf1a6d1 | ||
|
|
7573551ccb | ||
|
|
5d11ad1e8a | ||
|
|
cd525c7bb1 | ||
|
|
4644a04ee3 | ||
|
|
9ba4b4f901 | ||
|
|
cf3348e41c | ||
|
|
21877b851c | ||
|
|
d7ed325913 | ||
|
|
07aa7381a9 | ||
|
|
bb1c5fe833 | ||
|
|
72f0f0b346 | ||
|
|
f3af86c67e | ||
|
|
3eef9fcea1 | ||
|
|
906cf353b2 | ||
|
|
8a44c35e8c | ||
|
|
3e34d38b2d | ||
|
|
92f8ce13df | ||
|
|
f0d821a83c | ||
|
|
b8fbe8c1d3 | ||
|
|
1a237e67df | ||
|
|
db726dc570 | ||
|
|
4bbfdee3db | ||
|
|
e68b491806 | ||
|
|
621cfc8ba1 | ||
|
|
335305de9c | ||
|
|
42236b435f | ||
|
|
a27501598a | ||
|
|
ac3259b669 | ||
|
|
5560b9198b | ||
|
|
51319d2cae | ||
|
|
c4d4363abd | ||
|
|
0197a30845 | ||
|
|
ca86fd3219 | ||
|
|
c7530621ad | ||
|
|
cb2182ae3a | ||
|
|
2318b70929 | ||
|
|
c324bb3eff | ||
|
|
ff1c348970 | ||
|
|
fe8915122a | ||
|
|
7db056b75a | ||
|
|
6f23316c4a | ||
|
|
fa7141288f | ||
|
|
63a9fcf2e7 | ||
|
|
b6f90aaf1f | ||
|
|
4ef03a8950 | ||
|
|
823edbf0ab | ||
|
|
0c646bc3d1 | ||
|
|
f4e4349cad | ||
|
|
9845cc7c9c | ||
|
|
fdc29e53d3 | ||
|
|
a0f84e1b73 | ||
|
|
21379b0cf5 | ||
|
|
65895760ea | ||
|
|
20730e0afb | ||
|
|
c0295836a8 | ||
|
|
8c50df7bbf | ||
|
|
ec0fc7f816 | ||
|
|
f5c6b07246 | ||
|
|
35256f809e | ||
|
|
01201582b7 | ||
|
|
24b65fbe41 | ||
|
|
457587f033 | ||
|
|
78cf383197 | ||
|
|
71c784c8bc | ||
|
|
e4269a7140 | ||
|
|
3734937878 | ||
|
|
07c1c221cb | ||
|
|
246e599142 | ||
|
|
f1aa04858d | ||
|
|
301208c889 | ||
|
|
b5e3779cf2 | ||
|
|
56e2bd0be4 | ||
|
|
34cb030c7b | ||
|
|
a91099b33b | ||
|
|
ad9a3b8b45 | ||
|
|
c7e43807bf | ||
|
|
d8e7cf09b1 | ||
|
|
4f406d752d | ||
|
|
6d85564696 | ||
|
|
071f38c482 | ||
|
|
b81c66b4c7 | ||
|
|
0e5d15e072 | ||
|
|
78a20a11b2 | ||
|
|
54431f3360 | ||
|
|
ec1825beba | ||
|
|
3d9812a359 | ||
|
|
8add81e270 | ||
|
|
96a979aa33 | ||
|
|
92729b607a | ||
|
|
4bb73a49b5 | ||
|
|
7d237da216 | ||
|
|
5104e3f11c | ||
|
|
7bceb5b767 | ||
|
|
3ca1ed1912 | ||
|
|
79f67000c1 | ||
|
|
7b70e3d5eb | ||
|
|
1c04f78adb | ||
|
|
1efd8faedd | ||
|
|
25a4ea0a48 | ||
|
|
9d2b91a84c | ||
|
|
516cc8a0ac | ||
|
|
daea6758cb | ||
|
|
868882e2e7 | ||
|
|
dcb3e865c6 | ||
|
|
c4c2b0b58d | ||
|
|
0140824cf4 | ||
|
|
9d13b8508a | ||
|
|
99ba3608b0 | ||
|
|
73eba9c51c | ||
|
|
44c6dd4e06 | ||
|
|
6b44c55123 | ||
|
|
4f06f3cc81 | ||
|
|
1400cb8082 | ||
|
|
ed1882a83b | ||
|
|
a132b14f9d | ||
|
|
0b3ef351aa | ||
|
|
3815952b56 | ||
|
|
b3b8293b8a | ||
|
|
900590be7b | ||
|
|
b64f0f8376 | ||
|
|
429f7134b4 | ||
|
|
c746a673fc | ||
|
|
e90545855f | ||
|
|
5bfce469ff | ||
|
|
76810a91c5 | ||
|
|
2271d85d60 | ||
|
|
51ec2a3862 | ||
|
|
24dba328fa | ||
|
|
78e0b60876 | ||
|
|
25b132c55d | ||
|
|
e6bd929886 | ||
|
|
e0a3388465 | ||
|
|
f3913010d0 | ||
|
|
912208469b | ||
|
|
06a80fa07a | ||
|
|
4a1edbbc86 | ||
|
|
d2438fd3c5 | ||
|
|
78c3d98edf | ||
|
|
024a5290d1 | ||
|
|
3072103385 | ||
|
|
dd81b3e791 | ||
|
|
4a343bdb40 | ||
|
|
7e3a1abc07 | ||
|
|
39069282e2 | ||
|
|
494a069ca6 |
@@ -12,6 +12,8 @@ win/buildall.vc.bat
|
||||
win/coffbase.txt
|
||||
win/makefile.vc
|
||||
win/rules.vc
|
||||
win/rules-ext.vc
|
||||
win/targets.vc
|
||||
win/tcl.dsp
|
||||
win/tcl.dsw
|
||||
win/tcl.hpj.in
|
||||
@@ -12,6 +12,8 @@ win/buildall.vc.bat
|
||||
win/coffbase.txt
|
||||
win/makefile.vc
|
||||
win/rules.vc
|
||||
win/rules-ext.vc
|
||||
win/targets.vc
|
||||
win/tcl.dsp
|
||||
win/tcl.dsw
|
||||
win/tcl.hpj.in
|
||||
@@ -1,5 +1,5 @@
|
||||
README: Tcl
|
||||
This is the Tcl 8.7a2 source distribution.
|
||||
This is the Tcl 8.7.0-alpha.2 source distribution.
|
||||
http://sourceforge.net/projects/tcl/files/Tcl/
|
||||
You can get any source release of Tcl from the URL above.
|
||||
|
||||
|
||||
+2
-1
@@ -25,7 +25,8 @@ The patch level of the Tcl library (or alpha or beta number).
|
||||
.AP Tcl_ReleaseType *type out
|
||||
The type of release, also indicates the type of patch level. Can be
|
||||
one of \fBTCL_ALPHA_RELEASE\fR, \fBTCL_BETA_RELEASE\fR, or
|
||||
\fBTCL_FINAL_RELEASE\fR.
|
||||
\fBTCL_FINAL_RELEASE\fR. This function cannot distinguish between
|
||||
final and rc releases, both will be considered final.
|
||||
.BE
|
||||
|
||||
.SH DESCRIPTION
|
||||
|
||||
+46
-24
@@ -169,8 +169,8 @@ of a command; when the command is invoked during a \fBpackage require\fR
|
||||
command, Tcl appends one or more additional arguments giving the desired
|
||||
package name and requirements.
|
||||
For example, if \fIcommand\fR is \fBfoo bar\fR and later the command
|
||||
\fBpackage require test 2.4\fR is invoked, then Tcl will execute
|
||||
the command \fBfoo bar test 2.4\fR to load the package.
|
||||
\fBpackage require test 2.4.0\fR is invoked, then Tcl will execute
|
||||
the command \fBfoo bar test 2.4.0\fR to load the package.
|
||||
If no requirements are supplied to the \fBpackage require\fR command,
|
||||
then only the name will be added to invoked command.
|
||||
If the \fBpackage unknown\fR command is invoked without a \fIcommand\fR
|
||||
@@ -239,7 +239,7 @@ is equal to the \fImin\fR.
|
||||
Otherwise if, and only if the \fIversion\fR is greater than or equal
|
||||
to the \fImin\fR, and less than the \fImax\fR, where both \fImin\fR
|
||||
and \fImax\fR have been padded internally with
|
||||
.QW a0 .
|
||||
.QW -alpha.0 .
|
||||
Note that while the comparison to \fImin\fR is inclusive, the
|
||||
comparison to \fImax\fR is exclusive.
|
||||
.RE
|
||||
@@ -257,7 +257,7 @@ A \fIversion\fR satisfies a
|
||||
.QW min-unbound
|
||||
requirement if, and only if it is greater than or equal to the
|
||||
\fImin\fR, where the \fImin\fR has been padded internally with
|
||||
.QW a0 .
|
||||
.QW -alpha.0 .
|
||||
There is no constraint to a maximum.
|
||||
.RE
|
||||
.TP
|
||||
@@ -299,46 +299,68 @@ the initial (and permanent) selection mode value is set to
|
||||
.SH "VERSION NUMBERS"
|
||||
.PP
|
||||
Version numbers consist of one or more decimal numbers separated
|
||||
by dots, such as 2 or 1.162 or 3.1.13.1.
|
||||
by dots, such as 2.0.0 or 1.162.0 or 3.1.13.
|
||||
The first number is called the major version number.
|
||||
Larger numbers correspond to later versions of a package, with
|
||||
leftmost numbers having greater significance.
|
||||
For example, version 2.1 is later than 1.3 and version
|
||||
For example, version 2.1.0 is later than 1.3.0 and version
|
||||
3.4.6 is later than 3.3.5.
|
||||
Missing fields are equivalent to zeroes: version 1.3 is the
|
||||
same as version 1.3.0 and 1.3.0.0, so it is earlier than 1.3.1 or 1.3.0.2.
|
||||
In addition, the letters
|
||||
.QW a
|
||||
In addition, the specifiers
|
||||
.QW -alpha
|
||||
(alpha) and/or
|
||||
.QW b
|
||||
(beta) may appear
|
||||
exactly once to replace a dot for separation. These letters
|
||||
.QW -beta
|
||||
(beta) and/or
|
||||
.QW -rc
|
||||
(rc) may be inserted
|
||||
exactly once just before a dot for separation. These specifiers
|
||||
semantically add a negative specifier into the version, where
|
||||
.QW a
|
||||
.QW -alpha
|
||||
is \-3, and
|
||||
.QW -beta
|
||||
is \-2, and
|
||||
.QW b
|
||||
.QW -rc
|
||||
is \-1. Each may be specified only once, and
|
||||
.QW a
|
||||
.QW -alpha
|
||||
or
|
||||
.QW b
|
||||
are mutually exclusive in a specifier. Thus 1.3a1 becomes (semantically)
|
||||
1.3.\-2.1, 1.3b1 is 1.3.\-1.1. Negative numbers are not directly allowed
|
||||
.QW -beta
|
||||
or
|
||||
.QW -rc
|
||||
are mutually exclusive in a specifier. Thus 1.3.0-alpha.1 becomes (semantically)
|
||||
1.3.0.\-3.1, 1.3.0-beta.1 is 1.3.0.\-2.1. Negative numbers are not directly allowed
|
||||
in version specifiers.
|
||||
A version number not containing the letters
|
||||
.QW a
|
||||
A version number not containing the specifier
|
||||
.QW -alpha
|
||||
or
|
||||
.QW b
|
||||
.QW -beta
|
||||
or
|
||||
.QW -rc
|
||||
as specified
|
||||
above is called a \fBstable\fR version, whereas presence of the letters
|
||||
above is called a \fBstable\fR version, whereas presence of the specifier
|
||||
causes the version to be called is \fBunstable\fR.
|
||||
A later version number is assumed to be upwards compatible with
|
||||
an earlier version number as long as both versions have the same
|
||||
major version number.
|
||||
For example, Tcl scripts written for version 2.3 of a package should
|
||||
work unchanged under versions 2.3.2, 2.4, and 2.5.1.
|
||||
For example, Tcl scripts written for version 2.3.0 of a package should
|
||||
work unchanged under versions 2.3.2, 2.4.0, and 2.5.1.
|
||||
Changes in the major version number signify incompatible changes:
|
||||
if code is written to use version 2.1 of a package, it is not guaranteed
|
||||
if code is written to use version 2.1.0 of a package, it is not guaranteed
|
||||
to work unmodified with either version 1.7.3 or version 3.1.
|
||||
.PP
|
||||
Instead of the full specifiers \fB-alpha.\fR and \fB-beta.\fR (with dot this
|
||||
time), it is allowed to shorten this to simply \fBa\fR resp \fBb\fR. The
|
||||
number of elements doesn't need to be 3 (MAJOR, MINOR, PATCH), but it could
|
||||
be for reasons of compatibility with the "Semantic Versioning" specification.
|
||||
Tcl and Tk >= 8.7 follow this specificiation, but packages are
|
||||
not required to do that: Those packages will still function as expected
|
||||
with Tcl and Tk >= 8.7. There is no short equivalent to \fB-rc.\fR
|
||||
.PP
|
||||
Note that valid version number may contain a "-", while a dash can
|
||||
also be used to separate two version numbers in a requirement. The rule
|
||||
is that if the dash is followed by a non-digit, then the dash is
|
||||
interpreted as being part of the version number. Otherwise, it is
|
||||
handled as part of the requirement syntax.
|
||||
.SH "PACKAGE INDICES"
|
||||
.PP
|
||||
The recommended way to use packages in Tcl is to invoke \fBpackage require\fR
|
||||
|
||||
+20
-1
@@ -57,8 +57,27 @@ extern "C" {
|
||||
#define TCL_RELEASE_LEVEL TCL_ALPHA_RELEASE
|
||||
#define TCL_RELEASE_SERIAL 2
|
||||
|
||||
/*
|
||||
* Translation of above numbers to the strings below are as follows:
|
||||
* TCL_VERSION = $TCL_MAJOR_VERSION.$TCL_MINOR_VERSION
|
||||
* For alpha releases:
|
||||
* TCL_PATCH_LEVEL = $TCL_MAJOR_VERSION.$TCL_MINOR_VERSION.0-alpha.$TCL_RELEASE_SERIAL
|
||||
* For beta releases:
|
||||
* TCL_PATCH_LEVEL = $TCL_MAJOR_VERSION.$TCL_MINOR_VERSION.0-beta.$TCL_RELEASE_SERIAL
|
||||
* For rc releases (not distinguishing from final releases, other than through TCL_PATCH_LEVEL):
|
||||
* TCL_PATCH_LEVEL = $TCL_MAJOR_VERSION.$TCL_MINOR_VERSION.0-rc.1
|
||||
* For final releases:
|
||||
* TCL_PATCH_LEVEL = $TCL_MAJOR_VERSION.$TCL_MINOR_VERSION.$TCL_RELEASE_SERIAL
|
||||
*
|
||||
* Indeed, for alpha and beta releases, and additional ".0" is inserted in order
|
||||
* to comply with the semver rules that the numerical version must consist of 3 parts.
|
||||
* It indicates that version "a.b.c-anything" will eventually lead to version "a.b.c".
|
||||
* Tcl only releases alpha/beta's for c=0, there are no plans to change that (although
|
||||
* it would be possible with the semver numbering)
|
||||
*/
|
||||
|
||||
#define TCL_VERSION "8.7"
|
||||
#define TCL_PATCH_LEVEL "8.7a2"
|
||||
#define TCL_PATCH_LEVEL "8.7.0-alpha.2"
|
||||
|
||||
#if !defined(TCL_NO_DEPRECATED) || defined(RC_INVOKED)
|
||||
/*
|
||||
|
||||
@@ -3151,6 +3151,7 @@ Tcl_DeleteCommandFromToken(
|
||||
* traces.
|
||||
*/
|
||||
|
||||
cmdPtr->nsPtr->refCount++;
|
||||
if (cmdPtr->tracePtr != NULL) {
|
||||
CommandTrace *tracePtr;
|
||||
CallCommandTraces(iPtr,cmdPtr,NULL,NULL,TCL_TRACE_DELETE);
|
||||
@@ -3178,6 +3179,7 @@ Tcl_DeleteCommandFromToken(
|
||||
*/
|
||||
|
||||
TclInvalidateNsCmdLookup(cmdPtr->nsPtr);
|
||||
TclNsDecrRefCount(cmdPtr->nsPtr);
|
||||
|
||||
/*
|
||||
* If the command being deleted has a compile function, increment the
|
||||
|
||||
+104
-102
@@ -2431,14 +2431,32 @@ MakeCachedEnsembleCommand(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void
|
||||
ClearTable(
|
||||
EnsembleConfig *ensemblePtr)
|
||||
{
|
||||
Tcl_HashTable *hash = &ensemblePtr->subcommandTable;
|
||||
|
||||
if (hash->numEntries != 0) {
|
||||
Tcl_HashSearch search;
|
||||
Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(hash, &search);
|
||||
|
||||
while (hPtr != NULL) {
|
||||
Tcl_Obj *prefixObj = Tcl_GetHashValue(hPtr);
|
||||
Tcl_DecrRefCount(prefixObj);
|
||||
hPtr = Tcl_NextHashEntry(&search);
|
||||
}
|
||||
ckfree((char *) ensemblePtr->subcommandArrayPtr);
|
||||
}
|
||||
Tcl_DeleteHashTable(hash);
|
||||
}
|
||||
|
||||
static void
|
||||
DeleteEnsembleConfig(
|
||||
ClientData clientData)
|
||||
{
|
||||
EnsembleConfig *ensemblePtr = clientData;
|
||||
Namespace *nsPtr = ensemblePtr->nsPtr;
|
||||
Tcl_HashSearch search;
|
||||
Tcl_HashEntry *hEnt;
|
||||
|
||||
/*
|
||||
* Unlink from the ensemble chain if it has not been marked as having been
|
||||
@@ -2472,17 +2490,7 @@ DeleteEnsembleConfig(
|
||||
* Kill the pointer-containing fields.
|
||||
*/
|
||||
|
||||
if (ensemblePtr->subcommandTable.numEntries != 0) {
|
||||
ckfree(ensemblePtr->subcommandArrayPtr);
|
||||
}
|
||||
hEnt = Tcl_FirstHashEntry(&ensemblePtr->subcommandTable, &search);
|
||||
while (hEnt != NULL) {
|
||||
Tcl_Obj *prefixObj = Tcl_GetHashValue(hEnt);
|
||||
|
||||
Tcl_DecrRefCount(prefixObj);
|
||||
hEnt = Tcl_NextHashEntry(&search);
|
||||
}
|
||||
Tcl_DeleteHashTable(&ensemblePtr->subcommandTable);
|
||||
ClearTable(ensemblePtr);
|
||||
if (ensemblePtr->subcmdList != NULL) {
|
||||
Tcl_DecrRefCount(ensemblePtr->subcmdList);
|
||||
}
|
||||
@@ -2538,107 +2546,101 @@ BuildEnsembleConfig(
|
||||
int i, j, isNew;
|
||||
Tcl_HashTable *hash = &ensemblePtr->subcommandTable;
|
||||
Tcl_HashEntry *hPtr;
|
||||
Tcl_Obj *subcmdDictCopy = NULL ;
|
||||
Tcl_Obj *mapDict = ensemblePtr->subcommandDict;
|
||||
Tcl_Obj *subList = ensemblePtr->subcmdList;
|
||||
|
||||
if (hash->numEntries != 0) {
|
||||
/*
|
||||
* Remove pre-existing table.
|
||||
*/
|
||||
ClearTable(ensemblePtr);
|
||||
Tcl_InitHashTable(hash, TCL_STRING_KEYS);
|
||||
|
||||
ckfree(ensemblePtr->subcommandArrayPtr);
|
||||
hPtr = Tcl_FirstHashEntry(hash, &search);
|
||||
while (hPtr != NULL) {
|
||||
Tcl_Obj *prefixObj = Tcl_GetHashValue(hPtr);
|
||||
if (subList) {
|
||||
int subc;
|
||||
Tcl_Obj **subv, *target, *cmdObj, *cmdPrefixObj;
|
||||
char *name;
|
||||
|
||||
Tcl_DecrRefCount(prefixObj);
|
||||
hPtr = Tcl_NextHashEntry(&search);
|
||||
}
|
||||
Tcl_DeleteHashTable(hash);
|
||||
Tcl_InitHashTable(hash, TCL_STRING_KEYS);
|
||||
}
|
||||
/*
|
||||
* There is a list of exactly what subcommands go in the table.
|
||||
* Must determine the target for each.
|
||||
*/
|
||||
|
||||
/*
|
||||
* See if we've got an export list. If so, we will only export exactly
|
||||
* those commands, which may be either implemented by the prefix in the
|
||||
* subcommandDict or mapped directly onto the namespace's commands.
|
||||
*/
|
||||
Tcl_ListObjGetElements(NULL, subList, &subc, &subv);
|
||||
if (subList == mapDict) {
|
||||
/*
|
||||
* Strange case where explicit list of subcommands is same value
|
||||
* as the dict mapping to targets.
|
||||
*/
|
||||
|
||||
if (ensemblePtr->subcmdList != NULL) {
|
||||
Tcl_Obj **subcmdv, *target, *cmdObj, *cmdPrefixObj;
|
||||
int subcmdc;
|
||||
for (i = 0; i < subc; i += 2) {
|
||||
name = TclGetString(subv[i]);
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
if (!isNew) {
|
||||
cmdObj = (Tcl_Obj *)Tcl_GetHashValue(hPtr);
|
||||
Tcl_DecrRefCount(cmdObj);
|
||||
}
|
||||
Tcl_SetHashValue(hPtr, subv[i+1]);
|
||||
Tcl_IncrRefCount(subv[i+1]);
|
||||
|
||||
TclListObjGetElements(NULL, ensemblePtr->subcmdList, &subcmdc,
|
||||
&subcmdv);
|
||||
for (i=0 ; i<subcmdc ; i++) {
|
||||
const char *name = TclGetString(subcmdv[i]);
|
||||
name = TclGetString(subv[i+1]);
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
if (isNew) {
|
||||
cmdObj = Tcl_NewStringObj(name, -1);
|
||||
cmdPrefixObj = Tcl_NewListObj(1, &cmdObj);
|
||||
Tcl_SetHashValue(hPtr, cmdPrefixObj);
|
||||
Tcl_IncrRefCount(cmdPrefixObj);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Usual case where we can freely act on the list and dict. */
|
||||
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
for (i = 0; i < subc; i++) {
|
||||
name = TclGetString(subv[i]);
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
if (!isNew) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Skip non-unique cases.
|
||||
*/
|
||||
/* Lookup target in the dictionary */
|
||||
if (mapDict) {
|
||||
Tcl_DictObjGet(NULL, mapDict, subv[i], &target);
|
||||
if (target) {
|
||||
Tcl_SetHashValue(hPtr, target);
|
||||
Tcl_IncrRefCount(target);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isNew) {
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* target was not in the dictionary so map onto the namespace.
|
||||
* Note in this case that we do not guarantee that the
|
||||
* command is actually there; that is the programmer's
|
||||
* responsibility (or [::unknown] of course).
|
||||
*/
|
||||
cmdObj = Tcl_NewStringObj(name, -1);
|
||||
cmdPrefixObj = Tcl_NewListObj(1, &cmdObj);
|
||||
Tcl_SetHashValue(hPtr, cmdPrefixObj);
|
||||
Tcl_IncrRefCount(cmdPrefixObj);
|
||||
}
|
||||
}
|
||||
} else if (mapDict) {
|
||||
/*
|
||||
* No subcmd list, but we do have a mapping dictionary so we should
|
||||
* use the keys of that. Convert the dictionary's contents into the
|
||||
* form required for the ensemble's internal hashtable.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Look in our dictionary (if present) for the command.
|
||||
*/
|
||||
Tcl_DictSearch dictSearch;
|
||||
Tcl_Obj *keyObj, *valueObj;
|
||||
int done;
|
||||
|
||||
if (ensemblePtr->subcommandDict != NULL) {
|
||||
if (subcmdDictCopy == NULL) {
|
||||
if (ensemblePtr->subcmdList == ensemblePtr->subcommandDict) {
|
||||
subcmdDictCopy = Tcl_DuplicateObj(ensemblePtr->subcommandDict);
|
||||
} else {
|
||||
subcmdDictCopy = ensemblePtr->subcommandDict;
|
||||
}
|
||||
Tcl_IncrRefCount(subcmdDictCopy);
|
||||
}
|
||||
Tcl_DictObjGet(NULL, subcmdDictCopy, subcmdv[i],
|
||||
&target);
|
||||
if (target != NULL) {
|
||||
Tcl_SetHashValue(hPtr, target);
|
||||
Tcl_IncrRefCount(target);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
Tcl_DictObjFirst(NULL, ensemblePtr->subcommandDict, &dictSearch,
|
||||
&keyObj, &valueObj, &done);
|
||||
while (!done) {
|
||||
char *name = TclGetString(keyObj);
|
||||
|
||||
/*
|
||||
* Not there, so map onto the namespace. Note in this case that we
|
||||
* do not guarantee that the command is actually there; that is
|
||||
* the programmer's responsibility (or [::unknown] of course).
|
||||
*/
|
||||
|
||||
cmdObj = Tcl_NewStringObj(name, -1);
|
||||
cmdPrefixObj = Tcl_NewListObj(1, &cmdObj);
|
||||
Tcl_SetHashValue(hPtr, cmdPrefixObj);
|
||||
Tcl_IncrRefCount(cmdPrefixObj);
|
||||
}
|
||||
if (subcmdDictCopy != NULL) {
|
||||
Tcl_DecrRefCount(subcmdDictCopy);
|
||||
}
|
||||
} else if (ensemblePtr->subcommandDict != NULL) {
|
||||
/*
|
||||
* No subcmd list, but we do have a mapping dictionary so we should
|
||||
* use the keys of that. Convert the dictionary's contents into the
|
||||
* form required for the ensemble's internal hashtable.
|
||||
*/
|
||||
|
||||
Tcl_DictSearch dictSearch;
|
||||
Tcl_Obj *keyObj, *valueObj;
|
||||
int done;
|
||||
|
||||
Tcl_DictObjFirst(NULL, ensemblePtr->subcommandDict, &dictSearch,
|
||||
&keyObj, &valueObj, &done);
|
||||
while (!done) {
|
||||
const char *name = TclGetString(keyObj);
|
||||
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
Tcl_SetHashValue(hPtr, valueObj);
|
||||
Tcl_IncrRefCount(valueObj);
|
||||
Tcl_DictObjNext(&dictSearch, &keyObj, &valueObj, &done);
|
||||
}
|
||||
hPtr = Tcl_CreateHashEntry(hash, name, &isNew);
|
||||
Tcl_SetHashValue(hPtr, valueObj);
|
||||
Tcl_IncrRefCount(valueObj);
|
||||
Tcl_DictObjNext(&dictSearch, &keyObj, &valueObj, &done);
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Discover what commands are actually exported by the namespace.
|
||||
|
||||
+16
-51
@@ -28,6 +28,22 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(TCL_NO_DEPRECATED) && (TCL_MAJOR_VERSION < 9)
|
||||
/* Those macro's are especially for Itcl 3.4 compatibility */
|
||||
# define tclCreateNamespace tcl_CreateNamespace
|
||||
# define tclDeleteNamespace tcl_DeleteNamespace
|
||||
# define tclAppendExportList tcl_AppendExportList
|
||||
# define tclExport tcl_Export
|
||||
# define tclImport tcl_Import
|
||||
# define tclForgetImport tcl_ForgetImport
|
||||
# define tclGetCurrentNamespace_ tcl_GetCurrentNamespace
|
||||
# define tclGetGlobalNamespace_ tcl_GetGlobalNamespace
|
||||
# define tclFindNamespace tcl_FindNamespace
|
||||
# define tclFindCommand tcl_FindCommand
|
||||
# define tclGetCommandFromObj tcl_GetCommandFromObj
|
||||
# define tclGetCommandFullName tcl_GetCommandFullName
|
||||
#endif /* !defined(TCL_NO_DEPRECATED) */
|
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl
|
||||
* script. Any modifications to the function declarations below should be made
|
||||
@@ -1367,57 +1383,6 @@ extern const TclIntStubs *tclIntStubsPtr;
|
||||
# undef TclGetCommandFullName
|
||||
# undef TclCopyChannelOld
|
||||
# undef TclSockMinimumBuffersOld
|
||||
|
||||
#if !defined(TCL_NO_DEPRECATED)
|
||||
# undef Tcl_CreateNamespace
|
||||
# define Tcl_CreateNamespace \
|
||||
(tclIntStubsPtr->tclCreateNamespace) /* 113 */
|
||||
# define tcl_CreateNamespace tclCreateNamespace
|
||||
# undef Tcl_DeleteNamespace
|
||||
# define Tcl_DeleteNamespace \
|
||||
(tclIntStubsPtr->tclDeleteNamespace) /* 114 */
|
||||
# define tcl_DeleteNamespace tclDeleteNamespace
|
||||
# undef Tcl_AppendExportList
|
||||
# define Tcl_AppendExportList \
|
||||
(tclIntStubsPtr->tclAppendExportList) /* 112 */
|
||||
# define tcl_AppendExportList tclAppendExportList
|
||||
# undef Tcl_Export
|
||||
# define Tcl_Export \
|
||||
(tclIntStubsPtr->tclExport) /* 115 */
|
||||
# define tcl_Export tclExport
|
||||
# undef Tcl_Import
|
||||
# define Tcl_Import \
|
||||
(tclIntStubsPtr->tclImport) /* 127 */
|
||||
# define tcl_Import tclImport
|
||||
# undef Tcl_ForgetImport
|
||||
# define Tcl_ForgetImport \
|
||||
(tclIntStubsPtr->tclForgetImport) /* 121 */
|
||||
# define tcl_ForgetImport tclForgetImport
|
||||
# undef Tcl_GetCurrentNamespace
|
||||
# define Tcl_GetCurrentNamespace \
|
||||
(tclIntStubsPtr->tclGetCurrentNamespace_) /* 124 */
|
||||
# define tcl_GetCurrentNamespace tclGetCurrentNamespace_
|
||||
# undef Tcl_GetGlobalNamespace
|
||||
# define Tcl_GetGlobalNamespace \
|
||||
(tclIntStubsPtr->tclGetGlobalNamespace_) /* 125 */
|
||||
# define tcl_GetGlobalNamespace tclGetGlobalNamespace_
|
||||
# undef Tcl_FindNamespace
|
||||
# define Tcl_FindNamespace \
|
||||
(tclIntStubsPtr->tclFindNamespace) /* 117 */
|
||||
# define tcl_FindNamespace tclFindNamespace
|
||||
# undef Tcl_FindCommand
|
||||
# define Tcl_FindCommand \
|
||||
(tclIntStubsPtr->tclFindCommand) /* 116 */
|
||||
# define tcl_FindCommand tclFindCommand
|
||||
# undef Tcl_GetCommandFromObj
|
||||
# define Tcl_GetCommandFromObj \
|
||||
(tclIntStubsPtr->tclGetCommandFromObj) /* 122 */
|
||||
# define tcl_GetCommandFromObj tclGetCommandFromObj
|
||||
# undef Tcl_GetCommandFullName
|
||||
# define Tcl_GetCommandFullName \
|
||||
(tclIntStubsPtr->tclGetCommandFullName) /* 123 */
|
||||
# define tcl_GetCommandFullName tclGetCommandFullName
|
||||
#endif /* !defined(TCL_NO_DEPRECATED) */
|
||||
#endif
|
||||
|
||||
#endif /* _TCLINTDECLS */
|
||||
|
||||
+2
-2
@@ -417,8 +417,8 @@ Tcl_Init(
|
||||
" lappend scripts {\n"
|
||||
"set parentDir [file dirname [file dirname [info nameofexecutable]]]\n"
|
||||
"set grandParentDir [file dirname $parentDir]\n"
|
||||
"file join $parentDir lib tcl[info tclversion]} \\\n"
|
||||
" {file join $grandParentDir lib tcl[info tclversion]} \\\n"
|
||||
"file join $parentDir share tcl8} \\\n"
|
||||
" {file join $grandParentDir share tcl8} \\\n"
|
||||
" {file join $parentDir library} \\\n"
|
||||
" {file join $grandParentDir library} \\\n"
|
||||
" {file join $grandParentDir tcl[info tclversion] library} \\\n"
|
||||
|
||||
@@ -1809,7 +1809,6 @@ Tcl_FSGetNormalizedPath(
|
||||
*/
|
||||
|
||||
(void) TclGetStringFromObj(dir, &cwdLen);
|
||||
cwdLen += (Tcl_GetString(copy)[cwdLen] == '/');
|
||||
|
||||
/* Normalize the combined string. */
|
||||
|
||||
@@ -1831,12 +1830,12 @@ Tcl_FSGetNormalizedPath(
|
||||
* normalized head, we can more efficiently normalize the combined
|
||||
* path by passing over only the unnormalized tail portion. When
|
||||
* this is sufficient, prior developers claim this should be much
|
||||
* faster. We use 'cwdLen-1' so that we are already pointing at
|
||||
* faster. We use 'cwdLen' so that we are already pointing at
|
||||
* the dir-separator that we know about. The normalization code
|
||||
* will actually start off directly after that separator.
|
||||
*/
|
||||
|
||||
TclFSNormalizeToUniquePath(interp, copy, cwdLen-1);
|
||||
TclFSNormalizeToUniquePath(interp, copy, cwdLen);
|
||||
}
|
||||
|
||||
/* Now we need to construct the new path object. */
|
||||
|
||||
+56
-23
@@ -503,6 +503,8 @@ PkgRequireCore(
|
||||
* The version of the package sought is better than the
|
||||
* currently selected version.
|
||||
*/
|
||||
ckfree(bestVersion);
|
||||
bestVersion = NULL;
|
||||
goto newbest;
|
||||
}
|
||||
} else {
|
||||
@@ -531,6 +533,8 @@ PkgRequireCore(
|
||||
* This stable version of the package sought is better
|
||||
* than the currently selected stable version.
|
||||
*/
|
||||
ckfree(bestStableVersion);
|
||||
bestStableVersion = NULL;
|
||||
goto newstable;
|
||||
}
|
||||
} else {
|
||||
@@ -1421,11 +1425,11 @@ CheckVersionAndConvert(
|
||||
int *stable) /* Flag: Version is (un)stable. */
|
||||
{
|
||||
const char *p = string;
|
||||
char prevChar;
|
||||
char prevChar = 0;
|
||||
int hasunstable = 0;
|
||||
/*
|
||||
* 4* assuming that each char is a separator (a,b become ' -x ').
|
||||
* 4+ to have spce for an additional -2 at the end
|
||||
* 4+ to have spce for an additional -3 at the end
|
||||
*/
|
||||
char *ibuf = ckalloc(4 + 4*strlen(string));
|
||||
char *ip = ibuf;
|
||||
@@ -1442,6 +1446,12 @@ CheckVersionAndConvert(
|
||||
* (3) s.a.
|
||||
* (4) Only one of 'a' or 'b' may occur.
|
||||
* (5) Neither 'a', nor 'b' may occur before or after a '.'
|
||||
*
|
||||
* TIP 439, Modified rules
|
||||
* In stead of "a" and "b" in the above rules, the longer
|
||||
* forms "-alpha." and "-beta." are accepted as well. In
|
||||
* addition, "-rc." is allowed as intermediate between
|
||||
* beta and final release.
|
||||
*/
|
||||
|
||||
if (!isdigit(UCHAR(*p))) { /* INTL: digit */
|
||||
@@ -1452,34 +1462,51 @@ CheckVersionAndConvert(
|
||||
|
||||
for (prevChar = *p, p++; *p != 0; p++) {
|
||||
if (!isdigit(UCHAR(*p)) && /* INTL: digit */
|
||||
((*p!='.' && *p!='a' && *p!='b') ||
|
||||
((hasunstable && (*p=='a' || *p=='b')) ||
|
||||
((prevChar=='a' || prevChar=='b' || prevChar=='.')
|
||||
((*p!='.' && *p!='a' && *p!='b' && *p!='-') ||
|
||||
((hasunstable && (*p=='a' || *p=='b'|| *p=='-')) ||
|
||||
((prevChar=='a' || prevChar=='b' || prevChar=='r' || prevChar=='.')
|
||||
&& (*p=='.')) ||
|
||||
((*p=='a' || *p=='b' || *p=='.') && prevChar=='.')))) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (*p == 'a' || *p == 'b') {
|
||||
hasunstable = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Translation to the internal rep. Regular version chars are copied
|
||||
* as is. The separators are translated to numerics. The new separator
|
||||
* for all parts is space.
|
||||
*/
|
||||
|
||||
if (*p == '.') {
|
||||
prevChar = *p;
|
||||
if (*p == '-') {
|
||||
if (!strncmp(p+1, "alpha.", 6)) {
|
||||
p += 6;
|
||||
prevChar = 'a';
|
||||
} else if (!strncmp(p+1, "beta.", 5)) {
|
||||
p += 5;
|
||||
prevChar = 'b';
|
||||
} else if (!strncmp(p+1, "rc.", 3)) {
|
||||
p += 3;
|
||||
prevChar = 'r';
|
||||
}
|
||||
}
|
||||
if (prevChar == '.') {
|
||||
*ip++ = ' ';
|
||||
*ip++ = '0';
|
||||
*ip++ = ' ';
|
||||
} else if (*p == 'a') {
|
||||
} else if (prevChar == 'a') {
|
||||
hasunstable = 1;
|
||||
*ip++ = ' ';
|
||||
*ip++ = '-';
|
||||
*ip++ = '3';
|
||||
*ip++ = ' ';
|
||||
} else if (prevChar == 'b') {
|
||||
hasunstable = 1;
|
||||
*ip++ = ' ';
|
||||
*ip++ = '-';
|
||||
*ip++ = '2';
|
||||
*ip++ = ' ';
|
||||
} else if (*p == 'b') {
|
||||
} else if (prevChar == 'r') {
|
||||
hasunstable = 1;
|
||||
*ip++ = ' ';
|
||||
*ip++ = '-';
|
||||
*ip++ = '1';
|
||||
@@ -1488,9 +1515,8 @@ CheckVersionAndConvert(
|
||||
*ip++ = *p;
|
||||
}
|
||||
|
||||
prevChar = *p;
|
||||
}
|
||||
if (prevChar!='.' && prevChar!='a' && prevChar!='b') {
|
||||
if (prevChar!='.' && prevChar!='a' && prevChar!='b' && prevChar!='r') {
|
||||
*ip = '\0';
|
||||
if (internal != NULL) {
|
||||
*internal = ibuf;
|
||||
@@ -1755,7 +1781,10 @@ CheckRequirement(
|
||||
char *dash = NULL, *buf;
|
||||
|
||||
dash = strchr(string, '-');
|
||||
if (dash == NULL) {
|
||||
if ((dash != NULL) && (dash[1]=='a' || dash[1]=='b' || dash[1]=='r')) {
|
||||
dash = strchr(dash+1, '-');
|
||||
}
|
||||
if ((dash == NULL) || dash[1]=='a' || dash[1]=='b' || dash[1]=='r') {
|
||||
/*
|
||||
* No dash found, has to be a simple version.
|
||||
*/
|
||||
@@ -1763,7 +1792,8 @@ CheckRequirement(
|
||||
return CheckVersionAndConvert(interp, string, NULL, NULL);
|
||||
}
|
||||
|
||||
if (strchr(dash+1, '-') != NULL) {
|
||||
buf = strchr(dash+1, '-');
|
||||
if ((buf != NULL) && isdigit(UCHAR(buf[1]))) {
|
||||
/*
|
||||
* More dashes found after the first. This is wrong.
|
||||
*/
|
||||
@@ -1943,11 +1973,14 @@ RequirementSatisfied(
|
||||
char *dash = NULL, *buf, *min, *max;
|
||||
|
||||
dash = strchr(req, '-');
|
||||
if (dash == NULL) {
|
||||
if ((dash != NULL) && (dash[1]=='a' || dash[1]=='b')) {
|
||||
dash = strchr(dash+1, '-');
|
||||
}
|
||||
if ((dash == NULL) || dash[1]=='a' || dash[1]=='b') {
|
||||
/*
|
||||
* No dash found, is a simple version, fallback to regular check. The
|
||||
* 'CheckVersionAndConvert' cannot fail. We pad the requirement with
|
||||
* 'a0', i.e '-2' before doing the comparison to properly accept
|
||||
* 'a0', i.e '-3' before doing the comparison to properly accept
|
||||
* unstables as well.
|
||||
*/
|
||||
|
||||
@@ -1955,7 +1988,7 @@ RequirementSatisfied(
|
||||
int thisIsMajor;
|
||||
|
||||
CheckVersionAndConvert(NULL, req, &reqi, NULL);
|
||||
strcat(reqi, " -2");
|
||||
strcat(reqi, " -3");
|
||||
res = CompareVersions(havei, reqi, &thisIsMajor);
|
||||
satisfied = (res == 0) || ((res == 1) && !thisIsMajor);
|
||||
ckfree(reqi);
|
||||
@@ -1976,11 +2009,11 @@ RequirementSatisfied(
|
||||
if (*dash == '\0') {
|
||||
/*
|
||||
* We have a min, but no max. For the comparison we generate the
|
||||
* internal rep, padded with 'a0' i.e. '-2'.
|
||||
* internal rep, padded with 'a0' i.e. '-3'.
|
||||
*/
|
||||
|
||||
CheckVersionAndConvert(NULL, buf, &min, NULL);
|
||||
strcat(min, " -2");
|
||||
strcat(min, " -3");
|
||||
satisfied = (CompareVersions(havei, min, NULL) >= 0);
|
||||
ckfree(min);
|
||||
ckfree(buf);
|
||||
@@ -1999,8 +2032,8 @@ RequirementSatisfied(
|
||||
if (CompareVersions(min, max, NULL) == 0) {
|
||||
satisfied = (CompareVersions(min, havei, NULL) == 0);
|
||||
} else {
|
||||
strcat(min, " -2");
|
||||
strcat(max, " -2");
|
||||
strcat(min, " -3");
|
||||
strcat(max, " -3");
|
||||
satisfied = ((CompareVersions(min, havei, NULL) <= 0) &&
|
||||
(CompareVersions(havei, max, NULL) < 0));
|
||||
}
|
||||
|
||||
@@ -418,9 +418,14 @@ Tcl_GetCharLength(
|
||||
}
|
||||
|
||||
/*
|
||||
* Optimize the case where we're really dealing with a bytearray object
|
||||
* without string representation; we don't need to convert to a string to
|
||||
* perform the get-length operation.
|
||||
* Optimize the case where we're really dealing with a bytearray object;
|
||||
* we don't need to convert to a string to perform the get-length operation.
|
||||
*
|
||||
* Starting in Tcl 8.7, we check for a "pure" bytearray, because the
|
||||
* machinery behind that test is using a proper bytearray ObjType. We
|
||||
* could also compute length of an improper bytearray without shimmering
|
||||
* but there's no value in that. We *want* to shimmer an improper bytearray
|
||||
* because improper bytearrays have worthless internal reps.
|
||||
*/
|
||||
|
||||
if (TclIsPureByteArray(objPtr)) {
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#undef TclWinNToHS
|
||||
|
||||
/* See bug 510001: TclSockMinimumBuffers needs plat imp */
|
||||
#if defined(_WIN64) || defined(TCL_NO_DEPRECATED)
|
||||
#if defined(_WIN64) || defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8
|
||||
# define TclSockMinimumBuffersOld 0
|
||||
#else
|
||||
#define TclSockMinimumBuffersOld sockMinimumBuffersOld
|
||||
@@ -59,7 +59,7 @@ static int TclSockMinimumBuffersOld(int sock, int size)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(TCL_NO_DEPRECATED)
|
||||
#if defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8
|
||||
# define TclSetStartupScriptPath 0
|
||||
# define TclGetStartupScriptPath 0
|
||||
# define TclSetStartupScriptFileName 0
|
||||
@@ -103,7 +103,7 @@ static const char *TclGetStartupScriptFileName(void)
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
#undef TclWinNToHS
|
||||
#undef TclWinGetPlatformId
|
||||
#ifndef TCL_NO_DEPRECATED
|
||||
#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
|
||||
#define TclWinNToHS winNToHS
|
||||
static unsigned short TclWinNToHS(unsigned short ns) {
|
||||
return ntohs(ns);
|
||||
@@ -153,7 +153,7 @@ void *TclWinGetTclInstance()
|
||||
return hInstance;
|
||||
}
|
||||
|
||||
#ifndef TCL_NO_DEPRECATED
|
||||
#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
|
||||
#define TclWinSetSockOpt winSetSockOpt
|
||||
static int
|
||||
TclWinSetSockOpt(SOCKET s, int level, int optname,
|
||||
@@ -315,7 +315,7 @@ static int formatInt(char *buffer, int n){
|
||||
|
||||
#endif /* __CYGWIN__ */
|
||||
|
||||
#ifdef TCL_NO_DEPRECATED
|
||||
#if defined(TCL_NO_DEPRECATED)
|
||||
# define Tcl_SeekOld 0
|
||||
# define Tcl_TellOld 0
|
||||
# undef Tcl_SetBooleanObj
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
#include "tclInt.h"
|
||||
#include "tclOO.h"
|
||||
#include <math.h>
|
||||
#ifndef TCL_NO_DEPRECATED
|
||||
# define TCL_NO_DEPRECATED
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Required for Testregexp*Cmd
|
||||
|
||||
+7
-5
@@ -46,7 +46,7 @@ proc auto_reset {} {
|
||||
#
|
||||
# Arguments:
|
||||
# basename Prefix of the directory name, (e.g., "tk")
|
||||
# version Version number of the package, (e.g., "8.0")
|
||||
# version Version number of the package, (e.g., "8")
|
||||
# patch Patchlevel of the package, (e.g., "8.0.3")
|
||||
# initScript Initialization script to source (e.g., tk.tcl)
|
||||
# enVarName environment variable to honor (e.g., TK_LIBRARY)
|
||||
@@ -94,8 +94,8 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
|
||||
}
|
||||
|
||||
# 3. Various locations relative to the executable
|
||||
# ../lib/foo1.0 (From bin directory in install hierarchy)
|
||||
# ../../lib/foo1.0 (From bin/arch directory in install hierarchy)
|
||||
# ../share/foo1.0 (From bin directory in install hierarchy)
|
||||
# ../../share/foo1.0 (From bin/arch directory in install hierarchy)
|
||||
# ../library (From unix directory in build hierarchy)
|
||||
#
|
||||
# Remaining locations are out of date (when relevant, they ought to be
|
||||
@@ -109,8 +109,10 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
|
||||
|
||||
set parentDir [file dirname [file dirname [info nameofexecutable]]]
|
||||
set grandParentDir [file dirname $parentDir]
|
||||
lappend dirs [file join $parentDir lib $basename$version]
|
||||
lappend dirs [file join $grandParentDir lib $basename$version]
|
||||
lappend dirs [file join $parentDir share $basename$version]
|
||||
lappend dirs [file join $grandParentDir share $basename$version]
|
||||
lappend dirs [file join $parentDir share tcl8 $basename$version]
|
||||
lappend dirs [file join $grandParentDir share tcl8 $basename$version]
|
||||
lappend dirs [file join $parentDir library]
|
||||
if {0} {
|
||||
lappend dirs [file join $grandParentDir library]
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
if {([info commands ::tcl::pkgconfig] eq "")
|
||||
|| ([info sharedlibextension] ne ".dll")} return
|
||||
if {[::tcl::pkgconfig get debug]} {
|
||||
package ifneeded dde 1.4.0 [list load [file join $dir tcldde14g.dll] dde]
|
||||
} else {
|
||||
package ifneeded dde 1.4.0 [list load [file join $dir tcldde14.dll] dde]
|
||||
}
|
||||
package ifneeded dde 1.4.0 [list load [file join $dir tcldde1.dll] dde]
|
||||
|
||||
+6
-2
@@ -16,7 +16,7 @@
|
||||
if {[info commands package] == ""} {
|
||||
error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]"
|
||||
}
|
||||
package require -exact Tcl 8.7a2
|
||||
package require -exact Tcl 8.7.0-alpha.2
|
||||
|
||||
# Compute the auto path to use in this interpreter.
|
||||
# The values on the path come from several locations:
|
||||
@@ -53,7 +53,11 @@ namespace eval tcl {
|
||||
}
|
||||
}
|
||||
set Dir [file join [file dirname [file dirname \
|
||||
[info nameofexecutable]]] lib]
|
||||
[info nameofexecutable]]] lib tcl8]
|
||||
if {$Dir ni $::auto_path} {
|
||||
lappend ::auto_path $Dir
|
||||
}
|
||||
set Dir [file dirname $Dir]
|
||||
if {$Dir ni $::auto_path} {
|
||||
lappend ::auto_path $Dir
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
if {([info commands ::tcl::pkgconfig] eq "")
|
||||
|| ([info sharedlibextension] ne ".dll")} return
|
||||
if {[::tcl::pkgconfig get debug]} {
|
||||
package ifneeded registry 1.3.2 \
|
||||
[list load [file join $dir tclreg13g.dll] registry]
|
||||
} else {
|
||||
package ifneeded registry 1.3.2 \
|
||||
[list load [file join $dir tclreg13.dll] registry]
|
||||
}
|
||||
package ifneeded registry 1.3.2 \
|
||||
[list load [file join $dir tclreg1.dll] registry]
|
||||
|
||||
+5
-1
@@ -317,7 +317,6 @@ proc ::tcl::tm::Defaults {} {
|
||||
# Note that we're using [::list], not [list] because [list] means
|
||||
# something other than [::list] in this namespace.
|
||||
roots [::list \
|
||||
[file dirname [info library]] \
|
||||
[file join [file dirname [file dirname $exe]] lib] \
|
||||
]
|
||||
|
||||
@@ -326,6 +325,11 @@ proc ::tcl::tm::Defaults {} {
|
||||
} else {
|
||||
set sep ":"
|
||||
}
|
||||
if {[info exists env(TCL${major}_TM_PATH)]} {
|
||||
foreach p [split $env(TCL${major}_TM_PATH) $sep] {
|
||||
path add $p
|
||||
}
|
||||
}
|
||||
for {set n $minor} {$n >= 0} {incr n -1} {
|
||||
foreach ev [::list \
|
||||
TCL${major}.${n}_TM_PATH \
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ PROJECT := tcl
|
||||
PRODUCT_NAME := Tcl
|
||||
|
||||
UNIX_DIR := ${CURDIR}/../unix
|
||||
VERSION := $(shell awk -F= '/^TCL_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.ac)
|
||||
VERSION := $(shell awk -F= '/^TCL_MAJOR_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.ac)
|
||||
TCLSH := tclsh${VERSION}
|
||||
|
||||
BUILD_TARGET := all tcltest
|
||||
|
||||
+2
-2
@@ -141,9 +141,9 @@ Detailed Instructions for building with macosx/GNUmakefile
|
||||
- Unpack the Tcl source release archive.
|
||||
|
||||
- The following instructions assume the Tcl source tree is named "tcl${ver}",
|
||||
(where ${ver} is a shell variable containing the Tcl version number e.g. '8.7').
|
||||
(where ${ver} is a shell variable containing the Tcl version number e.g. '8').
|
||||
Setup this shell variable as follows:
|
||||
ver="8.7"
|
||||
ver="8"
|
||||
If you are building from CVS, omit this step (CVS source tree names usually do
|
||||
not contain a version number).
|
||||
|
||||
|
||||
@@ -34,4 +34,4 @@ TCL_CONFIGURE_ARGS = --enable-threads --enable-dtrace
|
||||
TCL_LIBRARY = $(LIBDIR)/tcl$(VERSION)
|
||||
TCL_PACKAGE_PATH = "$(LIBDIR)"
|
||||
TCL_DEFS = HAVE_TCL_CONFIG_H
|
||||
VERSION = 8.7
|
||||
VERSION = 8
|
||||
|
||||
@@ -377,6 +377,22 @@ test filesystem-1.52.1 {bug f9f390d0fa: file join where strep is not canonical}
|
||||
file normalize $x
|
||||
file join $x
|
||||
} -result /foo
|
||||
test filesystem-1.53 {[Bug 3559678] - normalize when tail is empty} {
|
||||
string match */ [file normalize [lindex [glob -dir [pwd] {{}}] 0]]
|
||||
} 0
|
||||
test filesystem-1.54 {[Bug ce3a211dcb] - normalize when tail is empty} -setup {
|
||||
set save [pwd]
|
||||
cd [set home [makeDirectory ce3a211dcb]]
|
||||
makeDirectory A $home
|
||||
cd [lindex [glob */] 0]
|
||||
} -body {
|
||||
string match */A [pwd]
|
||||
} -cleanup {
|
||||
cd $home
|
||||
removeDirectory A $home
|
||||
cd $save
|
||||
removeDirectory ce3a211dcb
|
||||
} -result 1
|
||||
|
||||
test filesystem-2.0 {new native path} {unix} {
|
||||
foreach f [lsort [glob -nocomplain /usr/bin/c*]] {
|
||||
|
||||
+17
-2
@@ -1808,14 +1808,29 @@ test namespace-42.9 {
|
||||
deallocated List struct.
|
||||
} -setup {
|
||||
namespace eval n {namespace ensemble create}
|
||||
dict set list one ::two
|
||||
namespace ensemble configure n -subcommands $list -map $list
|
||||
set lst [dict create one ::two]
|
||||
namespace ensemble configure n -subcommands $lst -map $lst
|
||||
} -body {
|
||||
n one
|
||||
} -cleanup {
|
||||
namespace delete n
|
||||
unset -nocomplain lst
|
||||
} -returnCodes error -match glob -result {invalid command name*}
|
||||
|
||||
test namespace-42.10 {
|
||||
ensembles: [Bug 4f6a1ebd64] segmentation fault due to pointer to a
|
||||
deallocated List struct (this time with duplicate of one in "dict").
|
||||
} -setup {
|
||||
namespace eval n {namespace ensemble create}
|
||||
set lst [list one ::two one ::three]
|
||||
namespace ensemble configure n -subcommands $lst -map $lst
|
||||
} -body {
|
||||
n one
|
||||
} -cleanup {
|
||||
namespace delete n
|
||||
unset -nocomplain lst
|
||||
} -returnCodes error -match glob -result {invalid command name *three*}
|
||||
|
||||
test namespace-43.1 {ensembles: dict-driven} {
|
||||
namespace eval ns {
|
||||
namespace export x*
|
||||
|
||||
+11
-3
@@ -118,6 +118,14 @@ test package-2.6 {Tcl_PkgProvide procedure} {
|
||||
package forget t
|
||||
package provide t 2.3a1
|
||||
} {}
|
||||
test package-2.7 {Tcl_PkgProvide procedure} {
|
||||
package forget t
|
||||
package provide t 2.3.0-alpha.1
|
||||
} {}
|
||||
test package-2.8 {Tcl_PkgProvide procedure} {
|
||||
package forget t
|
||||
package provide t 2.3.0-rc.1
|
||||
} {}
|
||||
|
||||
set n 0
|
||||
foreach v {
|
||||
@@ -585,7 +593,7 @@ test package-3.50 {Tcl_PkgRequire procedure, picking best stable version} -const
|
||||
}
|
||||
} -body {
|
||||
child eval {
|
||||
foreach i {1.4 3.4 4.0a1 2.3 2.4 2.2} {
|
||||
foreach i {1.4 3.4 4.0a1 4.0.0-alpha.1 2.3 2.4 2.2} {
|
||||
package ifneeded t $i "set x $i; package provide t $i"
|
||||
}
|
||||
package require t
|
||||
@@ -598,7 +606,7 @@ test package-3.51 {Tcl_PkgRequire procedure, picking best stable version} -setup
|
||||
package forget t
|
||||
set x xxx
|
||||
} -body {
|
||||
foreach i {1.2b1 1.2 1.3a2 1.3} {
|
||||
foreach i {1.2b1 1.2.0-beta.1 1.2 1.3a2 1.3.0-alpha.2 1.3} {
|
||||
package ifneeded t $i "set x $i; package provide t $i"
|
||||
}
|
||||
package require t
|
||||
@@ -608,7 +616,7 @@ test package-3.52 {Tcl_PkgRequire procedure, picking best stable version} -setup
|
||||
package forget t
|
||||
set x xxx
|
||||
} -body {
|
||||
foreach i {1.2b1 1.2 1.3 1.3a2} {
|
||||
foreach i {1.2b1 1.2.0-beta.1 1.2 1.3 1.3a2 1.3.0-alpha.2} {
|
||||
package ifneeded t $i "set x $i; package provide t $i"
|
||||
}
|
||||
package require t
|
||||
|
||||
+1
-1
@@ -553,7 +553,7 @@ test scan-5.18 {bigint scanning underflow} -setup {
|
||||
list [scan "-207698809136909011942886895" \
|
||||
%llu a] $a
|
||||
} -returnCodes 1 -result {unsigned bignum scans are invalid}
|
||||
test scan-5.18 {bigint scanning invalid} -setup {
|
||||
test scan-5.19 {bigint scanning invalid} -setup {
|
||||
set a {};
|
||||
} -body {
|
||||
list [scan "207698809136909011942886895" \
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@ test utf-4.10 {Tcl_NumUtfChars: #u0000, calc len, overcomplete} {testnumutfchars
|
||||
test utf-5.1 {Tcl_UtfFindFirst} {testfindfirst testbytestring} {
|
||||
testfindfirst [testbytestring "abcbc"] 98
|
||||
} {bcbc}
|
||||
test utf-5.1 {Tcl_UtfFindLast} {testfindlast testbytestring} {
|
||||
test utf-5.2 {Tcl_UtfFindLast} {testfindlast testbytestring} {
|
||||
testfindlast [testbytestring "abcbc"] 98
|
||||
} {bc}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1700,7 +1700,7 @@ fi
|
||||
|
||||
. $TCL_BIN_DIR/tclConfig.sh
|
||||
|
||||
TCL_WIN_VERSION=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
TCL_WIN_VERSION=$TCL_MAJOR_VERSION
|
||||
|
||||
CC=$TCL_CC
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ fi
|
||||
|
||||
. $TCL_BIN_DIR/tclConfig.sh
|
||||
|
||||
TCL_WIN_VERSION=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
TCL_WIN_VERSION=$TCL_MAJOR_VERSION
|
||||
AC_SUBST(TCL_WIN_VERSION)
|
||||
CC=$TCL_CC
|
||||
AC_SUBST(CC)
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@ HCW=0
|
||||
LCID=0x409 0x0 0x0 ;English (United States)
|
||||
REPORT=Yes
|
||||
TITLE=Tcl/Tk Reference Manual
|
||||
CNT=tcl87.cnt
|
||||
CNT=tcl8.cnt
|
||||
COPYRIGHT=Copyright © 2000 Ajuba Solutions
|
||||
HLP=tcl87.hlp
|
||||
HLP=tcl8.hlp
|
||||
|
||||
[FILES]
|
||||
tcl.rtf
|
||||
|
||||
@@ -4,7 +4,7 @@ if {[catch {package require Tcl 8.6-} msg]} {
|
||||
puts stderr "ERROR: $msg"
|
||||
puts stderr "If running this script from 'make html', set the\
|
||||
NATIVE_TCLSH environment\nvariable to point to an installed\
|
||||
tclsh8.7 (or the equivalent tclsh87.exe\non Windows)."
|
||||
tclsh8 (or the equivalent tclsh8.exe\non Windows)."
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ if {[catch {package require Tcl 8.6-} msg]} {
|
||||
# Copyright (c) 1995-1997 Roger E. Critchlow Jr
|
||||
# Copyright (c) 2004-2010 Donal K. Fellows
|
||||
|
||||
set ::Version "50/8.7"
|
||||
set ::Version "50/8"
|
||||
set ::CSSFILE "docs.css"
|
||||
|
||||
##
|
||||
|
||||
+19
-11
@@ -635,7 +635,7 @@ ${LIB_FILE}: ${STUB_LIB_FILE} ${OBJS}
|
||||
@MAKE_LIB@
|
||||
|
||||
${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
|
||||
@if test "x${LIB_FILE}" = "xlibtcl${MAJOR_VERSION}.${MINOR_VERSION}.dll"; then \
|
||||
@if test "x${LIB_FILE}" = "xlibtcl${MAJOR_VERSION}.dll"; then \
|
||||
(cd ${TOP_DIR}/win; ${MAKE} winextensions); \
|
||||
fi
|
||||
rm -f $@
|
||||
@@ -804,8 +804,8 @@ install-binaries: binaries
|
||||
@echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/"
|
||||
@@INSTALL_LIB@
|
||||
@chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)"
|
||||
@echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
|
||||
@$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
|
||||
@echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(MAJOR_VERSION)${EXE_SUFFIX}"
|
||||
@$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(MAJOR_VERSION)${EXE_SUFFIX}"
|
||||
@echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/"
|
||||
@$(INSTALL_DATA) tclConfig.sh "$(CONFIG_INSTALL_DIR)/tclConfig.sh"
|
||||
@echo "Installing tclooConfig.sh to $(CONFIG_INSTALL_DIR)/"
|
||||
@@ -829,7 +829,7 @@ install-libraries: libraries
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@for i in opt0.4 http1.0 encoding ../tcl8 ../tcl8/8.4 ../tcl8/8.4/platform ../tcl8/8.5 ../tcl8/8.6; \
|
||||
@for i in opt0.4 http1.0 encoding; \
|
||||
do \
|
||||
if [ ! -d "$(SCRIPT_INSTALL_DIR)"/$$i ] ; then \
|
||||
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
|
||||
@@ -837,6 +837,14 @@ install-libraries: libraries
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@for i in tcl8 tcl8/8.4 tcl8/8.4/platform tcl8/8.5 tcl8/8.6; \
|
||||
do \
|
||||
if [ ! -d "$(LIB_INSTALL_DIR)"/$$i ] ; then \
|
||||
echo "Making directory $(LIB_INSTALL_DIR)/$$i"; \
|
||||
$(INSTALL_DATA_DIR) "$(LIB_INSTALL_DIR)"/$$i; \
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)/";
|
||||
@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex \
|
||||
$(UNIX_DIR)/tclAppInit.c @LDAIX_SRC@ @DTRACE_SRC@; \
|
||||
@@ -849,21 +857,21 @@ install-libraries: libraries
|
||||
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/http1.0; \
|
||||
done;
|
||||
@echo "Installing package http 2.8.12 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.12.tm;
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(LIB_INSTALL_DIR)"/tcl8/8.6/http-2.8.12.tm;
|
||||
@echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/";
|
||||
@for i in $(TOP_DIR)/library/opt/*.tcl ; \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/opt0.4; \
|
||||
done;
|
||||
@echo "Installing package msgcat 1.6.1 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.6.1.tm;
|
||||
@echo "Installing package tcltest 2.4.1 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.4.1.tm;
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(LIB_INSTALL_DIR)"/tcl8/8.5/msgcat-1.6.1.tm;
|
||||
@echo "Installing package tcltest 2.4.0 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(LIB_INSTALL_DIR)"/tcl8/8.5/tcltest-2.4.1.tm;
|
||||
|
||||
@echo "Installing package platform 1.0.14 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.14.tm;
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(LIB_INSTALL_DIR)"/tcl8/8.4/platform-1.0.14.tm;
|
||||
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform/shell-1.1.4.tm;
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(LIB_INSTALL_DIR)"/tcl8/8.4/platform/shell-1.1.4.tm;
|
||||
|
||||
@echo "Installing encoding files to $(SCRIPT_INSTALL_DIR)/encoding/";
|
||||
@for i in $(TOP_DIR)/library/encoding/*.enc ; do \
|
||||
@@ -2105,7 +2113,7 @@ alldist: dist
|
||||
# such, this rule is not guaranteed to work well on all systems; it only needs
|
||||
# to function on those of the Tcl/Tk maintainers.
|
||||
#
|
||||
# Also note that the 8.6 tool build requires an installed 8.6 native Tcl
|
||||
# Also note that the 8.7 tool build requires an installed 8.7 native Tcl
|
||||
# interpreter in order to be able to run.
|
||||
#--------------------------------------------------------------------------
|
||||
|
||||
|
||||
Vendored
+26
-32
@@ -761,6 +761,7 @@ enable_shared
|
||||
enable_64bit
|
||||
enable_64bit_vis
|
||||
enable_rpath
|
||||
with_dbgx
|
||||
enable_corefoundation
|
||||
enable_load
|
||||
enable_symbols
|
||||
@@ -1416,6 +1417,7 @@ Optional Packages:
|
||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||
--with-encoding encoding for configuration values (default:
|
||||
iso8859-1)
|
||||
--with-dbgx debug extension for binaries
|
||||
--with-tzdata install timezone data (default: autodetect)
|
||||
|
||||
Some influential environment variables:
|
||||
@@ -2325,8 +2327,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
TCL_VERSION=8.7
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=7
|
||||
TCL_PATCH_LEVEL="a2"
|
||||
VERSION=${TCL_VERSION}
|
||||
TCL_PATCH_LEVEL=".0-alpha.2"
|
||||
VERSION=${TCL_MAJOR_VERSION}
|
||||
|
||||
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
|
||||
EXTRA_BUILD_HTML=${EXTRA_BUILD_HTML:-"@:"}
|
||||
@@ -4943,6 +4945,13 @@ fi
|
||||
|
||||
# Step 3: set configuration options based on system name and version.
|
||||
|
||||
|
||||
# Check whether --with-dbgx was given.
|
||||
if test "${with_dbgx+set}" = set; then :
|
||||
withval=$with_dbgx; with_dbgx=${withval}
|
||||
fi
|
||||
|
||||
|
||||
do64bit_ok=no
|
||||
# default to '{$LIBS}' and set to "" on per-platform necessary basis
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
@@ -4952,9 +4961,7 @@ fi
|
||||
# is disabled by the user. [Bug 1016796]
|
||||
LDFLAGS_ARCH=""
|
||||
UNSHARED_LIB_SUFFIX=""
|
||||
TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`'
|
||||
ECHO_VERSION='`echo ${VERSION}`'
|
||||
TCL_LIB_VERSIONS_OK=ok
|
||||
CFLAGS_DEBUG=-g
|
||||
if test "$GCC" = yes; then :
|
||||
|
||||
@@ -5236,7 +5243,7 @@ fi
|
||||
CC_SEARCH_FLAGS=""
|
||||
LD_SEARCH_FLAGS=""
|
||||
TCL_NEEDS_EXP_FILE=1
|
||||
TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.dll.a'
|
||||
TCL_EXPORT_FILE_SUFFIX='${VERSION}${with_dbgx}.dll.a'
|
||||
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$@.a"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cygwin version of gcc" >&5
|
||||
$as_echo_n "checking for Cygwin version of gcc... " >&6; }
|
||||
@@ -5299,7 +5306,7 @@ $as_echo "$ac_cv_cygwin" >&6; }
|
||||
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_SUFFIX=".so"
|
||||
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
|
||||
SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared'
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS="-lroot"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnetwork" >&5
|
||||
@@ -5621,7 +5628,7 @@ fi
|
||||
# get rid of the warnings.
|
||||
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
|
||||
|
||||
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
|
||||
SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared'
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS="-ldl"
|
||||
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
||||
@@ -5708,7 +5715,7 @@ fi
|
||||
SHLIB_CFLAGS="-fpic"
|
||||
;;
|
||||
esac
|
||||
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
||||
SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared'
|
||||
SHLIB_SUFFIX=".so"
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS=""
|
||||
@@ -5729,13 +5736,12 @@ fi
|
||||
|
||||
fi
|
||||
# OpenBSD doesn't do version numbers with dots.
|
||||
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
||||
TCL_LIB_VERSIONS_OK=nodots
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'
|
||||
;;
|
||||
NetBSD-*)
|
||||
# NetBSD has ELF and can use 'cc -shared' to build shared libs
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
||||
SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared'
|
||||
SHLIB_SUFFIX=".so"
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS=""
|
||||
@@ -5778,10 +5784,8 @@ fi
|
||||
case $system in
|
||||
FreeBSD-3.*)
|
||||
# Version numbers are dot-stripped by system policy.
|
||||
TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
|
||||
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
||||
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
|
||||
TCL_LIB_VERSIONS_OK=nodots
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'
|
||||
SHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.so'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -6519,11 +6523,11 @@ fi
|
||||
|
||||
if test "$SHARED_LIB_SUFFIX" = ""; then :
|
||||
|
||||
SHARED_LIB_SUFFIX='${VERSION}${SHLIB_SUFFIX}'
|
||||
SHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}${SHLIB_SUFFIX}'
|
||||
fi
|
||||
if test "$UNSHARED_LIB_SUFFIX" = ""; then :
|
||||
|
||||
UNSHARED_LIB_SUFFIX='${VERSION}.a'
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'
|
||||
fi
|
||||
DLL_INSTALL_DIR="\$(LIB_INSTALL_DIR)"
|
||||
|
||||
@@ -6671,7 +6675,6 @@ else
|
||||
fi
|
||||
|
||||
# FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT.
|
||||
DBGX=""
|
||||
if test "$tcl_ok" = "no"; then
|
||||
CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
|
||||
@@ -10186,11 +10189,11 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
|
||||
|
||||
# tclConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed
|
||||
# since on some platforms TCL_LIB_FILE contains shell escapes.
|
||||
# (See also: TCL_TRIM_DOTS).
|
||||
# (See also: TCL_TRIM_DOTS, which is deprecated).
|
||||
|
||||
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
|
||||
|
||||
TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
|
||||
TCL_LIBRARY='$(prefix)/share/tcl$(MAJOR_VERSION)'
|
||||
PRIVATE_INCLUDE_DIR='$(includedir)'
|
||||
HTML_DIR='$(DISTDIR)/html'
|
||||
|
||||
@@ -10293,11 +10296,7 @@ else
|
||||
eval libdir="$libdir"
|
||||
# default install directory for bundled packages
|
||||
PACKAGE_DIR="$libdir"
|
||||
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
|
||||
TCL_LIB_FLAG="-ltcl${TCL_VERSION}"
|
||||
else
|
||||
TCL_LIB_FLAG="-ltcl`echo ${TCL_VERSION} | tr -d .`"
|
||||
fi
|
||||
TCL_LIB_FLAG="-ltcl${TCL_MAJOR_VERSION}${with_dbgx}"
|
||||
TCL_BUILD_LIB_SPEC="-L`pwd | sed -e 's/ /\\\\ /g'` ${TCL_LIB_FLAG}"
|
||||
TCL_LIB_SPEC="-L${libdir} ${TCL_LIB_FLAG}"
|
||||
fi
|
||||
@@ -10329,18 +10328,13 @@ fi
|
||||
# stub support.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# Replace ${VERSION} with contents of ${TCL_VERSION}
|
||||
# double-eval to account for TCL_TRIM_DOTS.
|
||||
# Replace ${VERSION} with contents of ${TCL_MAJOR_VERSION}
|
||||
#
|
||||
eval "TCL_STUB_LIB_FILE=libtclstub${TCL_UNSHARED_LIB_SUFFIX}"
|
||||
eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
|
||||
eval "TCL_STUB_LIB_DIR=${libdir}"
|
||||
|
||||
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
|
||||
TCL_STUB_LIB_FLAG="-ltclstub${TCL_VERSION}"
|
||||
else
|
||||
TCL_STUB_LIB_FLAG="-ltclstub`echo ${TCL_VERSION} | tr -d .`"
|
||||
fi
|
||||
TCL_STUB_LIB_FLAG="-ltclstub${TCL_MAJOR_VERSION}${with_dbgx}"
|
||||
|
||||
TCL_BUILD_STUB_LIB_SPEC="-L`pwd | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}"
|
||||
TCL_STUB_LIB_SPEC="-L${TCL_STUB_LIB_DIR} ${TCL_STUB_LIB_FLAG}"
|
||||
|
||||
+8
-17
@@ -4,7 +4,7 @@ dnl generate the file "configure", which is run during Tcl installation
|
||||
dnl to configure the system for the local environment.
|
||||
|
||||
AC_INIT([tcl],[8.7])
|
||||
AC_PREREQ(2.69)
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
dnl This is only used when included from macosx/configure.ac
|
||||
m4_ifdef([SC_USE_CONFIG_HEADERS], [
|
||||
@@ -25,8 +25,8 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [
|
||||
TCL_VERSION=8.7
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=7
|
||||
TCL_PATCH_LEVEL="a2"
|
||||
VERSION=${TCL_VERSION}
|
||||
TCL_PATCH_LEVEL=".0-alpha.2"
|
||||
VERSION=${TCL_MAJOR_VERSION}
|
||||
|
||||
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
|
||||
EXTRA_BUILD_HTML=${EXTRA_BUILD_HTML:-"@:"}
|
||||
@@ -819,11 +819,11 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
|
||||
|
||||
# tclConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed
|
||||
# since on some platforms TCL_LIB_FILE contains shell escapes.
|
||||
# (See also: TCL_TRIM_DOTS).
|
||||
# (See also: TCL_TRIM_DOTS, which is deprecated).
|
||||
|
||||
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
|
||||
|
||||
TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
|
||||
TCL_LIBRARY='$(prefix)/share/tcl$(MAJOR_VERSION)'
|
||||
PRIVATE_INCLUDE_DIR='$(includedir)'
|
||||
HTML_DIR='$(DISTDIR)/html'
|
||||
|
||||
@@ -890,11 +890,7 @@ else
|
||||
eval libdir="$libdir"
|
||||
# default install directory for bundled packages
|
||||
PACKAGE_DIR="$libdir"
|
||||
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
|
||||
TCL_LIB_FLAG="-ltcl${TCL_VERSION}"
|
||||
else
|
||||
TCL_LIB_FLAG="-ltcl`echo ${TCL_VERSION} | tr -d .`"
|
||||
fi
|
||||
TCL_LIB_FLAG="-ltcl${TCL_MAJOR_VERSION}${with_dbgx}"
|
||||
TCL_BUILD_LIB_SPEC="-L`pwd | sed -e 's/ /\\\\ /g'` ${TCL_LIB_FLAG}"
|
||||
TCL_LIB_SPEC="-L${libdir} ${TCL_LIB_FLAG}"
|
||||
fi
|
||||
@@ -926,18 +922,13 @@ fi
|
||||
# stub support.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# Replace ${VERSION} with contents of ${TCL_VERSION}
|
||||
# double-eval to account for TCL_TRIM_DOTS.
|
||||
# Replace ${VERSION} with contents of ${TCL_MAJOR_VERSION}
|
||||
#
|
||||
eval "TCL_STUB_LIB_FILE=libtclstub${TCL_UNSHARED_LIB_SUFFIX}"
|
||||
eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
|
||||
eval "TCL_STUB_LIB_DIR=${libdir}"
|
||||
|
||||
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
|
||||
TCL_STUB_LIB_FLAG="-ltclstub${TCL_VERSION}"
|
||||
else
|
||||
TCL_STUB_LIB_FLAG="-ltclstub`echo ${TCL_VERSION} | tr -d .`"
|
||||
fi
|
||||
TCL_STUB_LIB_FLAG="-ltclstub${TCL_MAJOR_VERSION}${with_dbgx}"
|
||||
|
||||
TCL_BUILD_STUB_LIB_SPEC="-L`pwd | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}"
|
||||
TCL_STUB_LIB_SPEC="-L${TCL_STUB_LIB_DIR} ${TCL_STUB_LIB_FLAG}"
|
||||
|
||||
+12
-16
@@ -736,7 +736,6 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
|
||||
[build with debugging symbols (default: off)]),
|
||||
[tcl_ok=$enableval], [tcl_ok=no])
|
||||
# FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT.
|
||||
DBGX=""
|
||||
if test "$tcl_ok" = "no"; then
|
||||
CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
|
||||
@@ -1072,6 +1071,8 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
|
||||
# Step 3: set configuration options based on system name and version.
|
||||
|
||||
AC_ARG_WITH(dbgx, [ --with-dbgx debug extension for binaries], with_dbgx=${withval})
|
||||
|
||||
do64bit_ok=no
|
||||
# default to '{$LIBS}' and set to "" on per-platform necessary basis
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
@@ -1081,9 +1082,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
# is disabled by the user. [Bug 1016796]
|
||||
LDFLAGS_ARCH=""
|
||||
UNSHARED_LIB_SUFFIX=""
|
||||
TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`'
|
||||
ECHO_VERSION='`echo ${VERSION}`'
|
||||
TCL_LIB_VERSIONS_OK=ok
|
||||
CFLAGS_DEBUG=-g
|
||||
AS_IF([test "$GCC" = yes], [
|
||||
CFLAGS_OPTIMIZE=-O2
|
||||
@@ -1207,7 +1206,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
CC_SEARCH_FLAGS=""
|
||||
LD_SEARCH_FLAGS=""
|
||||
TCL_NEEDS_EXP_FILE=1
|
||||
TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.dll.a'
|
||||
TCL_EXPORT_FILE_SUFFIX='${VERSION}${with_dbgx}.dll.a'
|
||||
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
|
||||
AC_CACHE_CHECK(for Cygwin version of gcc,
|
||||
ac_cv_cygwin,
|
||||
@@ -1250,7 +1249,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_SUFFIX=".so"
|
||||
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
|
||||
SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared'
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS="-lroot"
|
||||
AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"])
|
||||
@@ -1394,7 +1393,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
# get rid of the warnings.
|
||||
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
|
||||
|
||||
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
|
||||
SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared'
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS="-ldl"
|
||||
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
||||
@@ -1444,7 +1443,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
SHLIB_CFLAGS="-fpic"
|
||||
;;
|
||||
esac
|
||||
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
||||
SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared'
|
||||
SHLIB_SUFFIX=".so"
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS=""
|
||||
@@ -1461,13 +1460,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
CFLAGS="$CFLAGS -pthread"
|
||||
])
|
||||
# OpenBSD doesn't do version numbers with dots.
|
||||
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
||||
TCL_LIB_VERSIONS_OK=nodots
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'
|
||||
;;
|
||||
NetBSD-*)
|
||||
# NetBSD has ELF and can use 'cc -shared' to build shared libs
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
||||
SHLIB_LD='${CC} ${SHLIB_CFLAGS} -shared'
|
||||
SHLIB_SUFFIX=".so"
|
||||
DL_OBJS="tclLoadDl.o"
|
||||
DL_LIBS=""
|
||||
@@ -1502,10 +1500,8 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
case $system in
|
||||
FreeBSD-3.*)
|
||||
# Version numbers are dot-stripped by system policy.
|
||||
TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
|
||||
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
||||
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
|
||||
TCL_LIB_VERSIONS_OK=nodots
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'
|
||||
SHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.so'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -1926,9 +1922,9 @@ dnl # preprocessing tests use only CPPFLAGS.
|
||||
])
|
||||
|
||||
AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [
|
||||
SHARED_LIB_SUFFIX='${VERSION}${SHLIB_SUFFIX}'])
|
||||
SHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}${SHLIB_SUFFIX}'])
|
||||
AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [
|
||||
UNSHARED_LIB_SUFFIX='${VERSION}.a'])
|
||||
UNSHARED_LIB_SUFFIX='${TCL_MAJOR_VERSION}${with_dbgx}.a'])
|
||||
DLL_INSTALL_DIR="\$(LIB_INSTALL_DIR)"
|
||||
|
||||
AS_IF([test "${SHARED_BUILD}" = 1 -a "${SHLIB_SUFFIX}" != ""], [
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: tcl
|
||||
Summary: Tcl scripting language development environment
|
||||
Version: 8.7a2
|
||||
Version: 8.7.0-alpha.2
|
||||
Release: 2
|
||||
License: BSD
|
||||
Group: Development/Languages
|
||||
|
||||
@@ -23,6 +23,7 @@ TCL_DEFS='@DEFS@'
|
||||
|
||||
# TCL_DBGX used to be used to distinguish debug vs. non-debug builds.
|
||||
# This was a righteous pain so the core doesn't do that any more.
|
||||
# DEPRECATED, will be removed in Tcl 9!
|
||||
TCL_DBGX=
|
||||
|
||||
# Default flags used in an optimized and debuggable build, respectively.
|
||||
@@ -113,7 +114,7 @@ TCL_INCLUDE_SPEC='@TCL_INCLUDE_SPEC@'
|
||||
# Indicates whether a version numbers should be used in -l switches
|
||||
# ("ok" means it's safe to use switches like -ltcl7.5; "nodots" means
|
||||
# use switches like -ltcl75). SunOS and FreeBSD require "nodots", for
|
||||
# example.
|
||||
# example. DEPRECATED, will be removed in Tcl 9!
|
||||
TCL_LIB_VERSIONS_OK='@TCL_LIB_VERSIONS_OK@'
|
||||
|
||||
# String that can be evaluated to generate the part of a shared library
|
||||
|
||||
+1
-1
@@ -488,7 +488,7 @@ TclpInitLibraryPath(
|
||||
* installed.
|
||||
*/
|
||||
|
||||
sprintf(installLib, "lib/tcl%s", TCL_VERSION);
|
||||
sprintf(installLib, "lib/tcl%d", TCL_MAJOR_VERSION);
|
||||
|
||||
/*
|
||||
* If TCL_LIBRARY is set, search there.
|
||||
|
||||
+18
-24
@@ -34,7 +34,7 @@ INSTALL_ROOT =
|
||||
# Directory from which applications will reference the library of Tcl scripts
|
||||
# (note: you can set the TCL_LIBRARY environment variable at run-time to
|
||||
# override this value):
|
||||
TCL_LIBRARY = $(prefix)/lib/tcl$(VERSION)
|
||||
TCL_LIBRARY = $(prefix)/share/tcl$(VER)
|
||||
|
||||
# Path to use at runtime to refer to LIB_INSTALL_DIR:
|
||||
LIB_RUNTIME_DIR = $(libdir)
|
||||
@@ -66,9 +66,6 @@ MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
|
||||
# Directory in which to install manual entries for the built-in Tcl commands:
|
||||
MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
|
||||
|
||||
# Libraries built with optimization switches have this additional extension
|
||||
TCL_DBGX = @TCL_DBGX@
|
||||
|
||||
# warning flags
|
||||
CFLAGS_WARNING = @CFLAGS_WARNING@
|
||||
|
||||
@@ -130,12 +127,9 @@ DLLSUFFIX = @DLLSUFFIX@
|
||||
LIBSUFFIX = @LIBSUFFIX@
|
||||
EXESUFFIX = @EXESUFFIX@
|
||||
|
||||
VER = @TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@
|
||||
DOTVER = @TCL_MAJOR_VERSION@.@TCL_MINOR_VERSION@
|
||||
DDEVER = @TCL_DDE_MAJOR_VERSION@@TCL_DDE_MINOR_VERSION@
|
||||
DDEDOTVER = @TCL_DDE_MAJOR_VERSION@.@TCL_DDE_MINOR_VERSION@
|
||||
REGVER = @TCL_REG_MAJOR_VERSION@@TCL_REG_MINOR_VERSION@
|
||||
REGDOTVER = @TCL_REG_MAJOR_VERSION@.@TCL_REG_MINOR_VERSION@
|
||||
VER = @TCL_MAJOR_VERSION@
|
||||
DDEVER = @TCL_DDE_MAJOR_VERSION@
|
||||
REGVER = @TCL_REG_MAJOR_VERSION@
|
||||
|
||||
TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
|
||||
TCL_DLL_FILE = @TCL_DLL_FILE@
|
||||
@@ -577,7 +571,7 @@ install-binaries: binaries
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@for i in dde${DDEDOTVER} reg${REGDOTVER}; \
|
||||
@for i in tcl8 tcl8/dde${DDEVER} tcl8/reg${REGVER}; \
|
||||
do \
|
||||
if [ ! -d $(LIB_INSTALL_DIR)/$$i ] ; then \
|
||||
echo "Making directory $(LIB_INSTALL_DIR)/$$i"; \
|
||||
@@ -601,23 +595,23 @@ install-binaries: binaries
|
||||
done
|
||||
@if [ -f $(DDE_DLL_FILE) ]; then \
|
||||
echo Installing $(DDE_DLL_FILE); \
|
||||
$(COPY) $(DDE_DLL_FILE) $(LIB_INSTALL_DIR)/dde${DDEDOTVER}; \
|
||||
$(COPY) $(DDE_DLL_FILE) $(LIB_INSTALL_DIR)/tcl8/dde${DDEVER}; \
|
||||
$(COPY) $(ROOT_DIR)/library/dde/pkgIndex.tcl \
|
||||
$(LIB_INSTALL_DIR)/dde${DDEDOTVER}; \
|
||||
$(LIB_INSTALL_DIR)/tcl8/dde${DDEVER}; \
|
||||
fi
|
||||
@if [ -f $(DDE_LIB_FILE) ]; then \
|
||||
echo Installing $(DDE_LIB_FILE); \
|
||||
$(COPY) $(DDE_LIB_FILE) $(LIB_INSTALL_DIR)/dde${DDEDOTVER}; \
|
||||
$(COPY) $(DDE_LIB_FILE) $(LIB_INSTALL_DIR)/tcl8/dde${DDEVER}; \
|
||||
fi
|
||||
@if [ -f $(REG_DLL_FILE) ]; then \
|
||||
echo Installing $(REG_DLL_FILE); \
|
||||
$(COPY) $(REG_DLL_FILE) $(LIB_INSTALL_DIR)/reg${REGDOTVER}; \
|
||||
$(COPY) $(REG_DLL_FILE) $(LIB_INSTALL_DIR)/tcl8/reg${REGVER}; \
|
||||
$(COPY) $(ROOT_DIR)/library/reg/pkgIndex.tcl \
|
||||
$(LIB_INSTALL_DIR)/reg${REGDOTVER}; \
|
||||
$(LIB_INSTALL_DIR)/tcl8/reg${REGVER}; \
|
||||
fi
|
||||
@if [ -f $(REG_LIB_FILE) ]; then \
|
||||
echo Installing $(REG_LIB_FILE); \
|
||||
$(COPY) $(REG_LIB_FILE) $(LIB_INSTALL_DIR)/reg${REGDOTVER}; \
|
||||
$(COPY) $(REG_LIB_FILE) $(LIB_INSTALL_DIR)/tcl8/reg${REGVER}; \
|
||||
fi
|
||||
|
||||
install-libraries: libraries install-tzdata install-msgs
|
||||
@@ -630,7 +624,7 @@ install-libraries: libraries install-tzdata install-msgs
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@for i in http1.0 opt0.4 encoding ../tcl8 ../tcl8/8.4 ../tcl8/8.4/platform ../tcl8/8.5 ../tcl8/8.6; \
|
||||
@for i in http1.0 opt0.4 encoding platform; \
|
||||
do \
|
||||
if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \
|
||||
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
|
||||
@@ -658,20 +652,20 @@ install-libraries: libraries install-tzdata install-msgs
|
||||
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http1.0"; \
|
||||
done;
|
||||
@echo "Installing package http 2.8.12 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.12.tm;
|
||||
@$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/http-2.8.12.tm;
|
||||
@echo "Installing library opt0.4 directory";
|
||||
@for j in $(ROOT_DIR)/library/opt/*.tcl; \
|
||||
do \
|
||||
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \
|
||||
done;
|
||||
@echo "Installing package msgcat 1.6.1 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.6.1.tm;
|
||||
@echo "Installing package tcltest 2.4.0 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.4.0.tm;
|
||||
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/msgcat-1.6.1.tm;
|
||||
@echo "Installing package tcltest 2.4.1 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/tcltest-2.4.1.tm;
|
||||
@echo "Installing package platform 1.0.14 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.14.tm;
|
||||
@$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/platform-1.0.14.tm;
|
||||
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/platform/shell.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform/shell-1.1.4.tm;
|
||||
@$(COPY) $(ROOT_DIR)/library/platform/shell.tcl $(SCRIPT_INSTALL_DIR)/platform/shell-1.1.4.tm;
|
||||
@echo "Installing encodings";
|
||||
@for i in $(ROOT_DIR)/library/encoding/*.enc ; do \
|
||||
$(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)/encoding"; \
|
||||
|
||||
+2
-2
@@ -79,9 +79,9 @@ Use the Makefile "install" target to install Tcl. It will install it
|
||||
according to the prefix options you provided in the correct directory
|
||||
structure.
|
||||
|
||||
Note that in order to run tclsh87.exe, you must ensure that tcl87.dll is
|
||||
Note that in order to run tclsh8.exe, you must ensure that tcl8.dll is
|
||||
on your path, in the system directory, or in the directory containing
|
||||
tclsh87.exe.
|
||||
tclsh8.exe.
|
||||
|
||||
Note: Tcl no longer provides support for Win32s.
|
||||
|
||||
|
||||
Vendored
+29
-30
@@ -767,6 +767,7 @@ enable_threads
|
||||
with_encoding
|
||||
enable_shared
|
||||
enable_64bit
|
||||
with_dbgx
|
||||
enable_symbols
|
||||
enable_embedded_manifest
|
||||
'
|
||||
@@ -1397,6 +1398,7 @@ Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||
--with-encoding encoding for configuration values
|
||||
--with-dbgx debug extension for binaries
|
||||
|
||||
Some influential environment variables:
|
||||
CC C compiler command
|
||||
@@ -2097,8 +2099,8 @@ SHELL=/bin/sh
|
||||
TCL_VERSION=8.7
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=7
|
||||
TCL_PATCH_LEVEL="a2"
|
||||
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
TCL_PATCH_LEVEL=".0-alpha.2"
|
||||
VER=$TCL_MAJOR_VERSION
|
||||
|
||||
TCL_DDE_VERSION=1.4
|
||||
TCL_DDE_MAJOR_VERSION=1
|
||||
@@ -3851,6 +3853,13 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --with-dbgx was given.
|
||||
if test "${with_dbgx+set}" = set; then :
|
||||
withval=$with_dbgx; with_dbgx=${withval}
|
||||
fi
|
||||
|
||||
|
||||
SHLIB_SUFFIX=".dll"
|
||||
|
||||
# MACHINE is IX86 for LINK, but this is used by the manifest,
|
||||
@@ -4080,7 +4089,7 @@ $as_echo_n "checking compiler flags... " >&6; }
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
LIBS="-lnetapi32 -lkernel32 -luser32 -ladvapi32 -luserenv -lws2_32"
|
||||
# mingw needs to link ole32 and oleaut32 for [send], but MSVC doesn't
|
||||
LIBS_GUI="-luxtheme -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -luuid -lole32 -loleaut32"
|
||||
LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -luuid -lole32 -loleaut32"
|
||||
STLIB_LD='${AR} cr'
|
||||
RC_OUT=-o
|
||||
RC_TYPE=
|
||||
@@ -4099,7 +4108,7 @@ $as_echo_n "checking compiler flags... " >&6; }
|
||||
$as_echo "using static flags" >&6; }
|
||||
runtime=
|
||||
LIBRARIES="\${STATIC_LIBRARIES}"
|
||||
EXESUFFIX="s\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
else
|
||||
# dynamic
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using shared flags" >&5
|
||||
@@ -4114,7 +4123,7 @@ $as_echo "using shared flags" >&6; }
|
||||
runtime=
|
||||
# Add SHLIB_LD_LIBS to the Make rule, not here.
|
||||
|
||||
EXESUFFIX="\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
LIBRARIES="\${SHARED_LIBRARIES}"
|
||||
fi
|
||||
# Link with gcc since ld does not link to default libs like
|
||||
@@ -4125,9 +4134,9 @@ $as_echo "using shared flags" >&6; }
|
||||
-Wl,--out-implib,\$(patsubst %.dll,lib%.a,\$@)"
|
||||
# DLLSUFFIX is separate because it is the building block for
|
||||
# users of tclConfig.sh that may build shared or static.
|
||||
DLLSUFFIX="\${DBGX}.dll"
|
||||
LIBSUFFIX="\${DBGX}.a"
|
||||
LIBFLAGSUFFIX="\${DBGX}"
|
||||
DLLSUFFIX="${with_dbgx}.dll"
|
||||
LIBSUFFIX="${with_dbgx}.a"
|
||||
LIBFLAGSUFFIX="${with_dbgx}"
|
||||
SHLIB_SUFFIX=.dll
|
||||
|
||||
EXTRA_CFLAGS="${extra_cflags}"
|
||||
@@ -4208,7 +4217,7 @@ $as_echo " Using 64-bit $MACHINE mode" >&6; }
|
||||
$as_echo "using static flags" >&6; }
|
||||
runtime=-MT
|
||||
LIBRARIES="\${STATIC_LIBRARIES}"
|
||||
EXESUFFIX="s\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
else
|
||||
# dynamic
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using shared flags" >&5
|
||||
@@ -4216,7 +4225,7 @@ $as_echo "using shared flags" >&6; }
|
||||
runtime=-MD
|
||||
# Add SHLIB_LD_LIBS to the Make rule, not here.
|
||||
LIBRARIES="\${SHARED_LIBRARIES}"
|
||||
EXESUFFIX="\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
case "x`echo \${VisualStudioVersion}`" in
|
||||
x1[4-9]*)
|
||||
lflags="${lflags} -nodefaultlib:libucrt.lib"
|
||||
@@ -4228,9 +4237,9 @@ $as_echo "using shared flags" >&6; }
|
||||
MAKE_DLL="\${SHLIB_LD} \$(LDFLAGS) -out:\$@"
|
||||
# DLLSUFFIX is separate because it is the building block for
|
||||
# users of tclConfig.sh that may build shared or static.
|
||||
DLLSUFFIX="\${DBGX}.dll"
|
||||
LIBSUFFIX="\${DBGX}.lib"
|
||||
LIBFLAGSUFFIX="\${DBGX}"
|
||||
DLLSUFFIX="${with_dbgx}.dll"
|
||||
LIBSUFFIX="${with_dbgx}.lib"
|
||||
LIBFLAGSUFFIX="${with_dbgx}"
|
||||
|
||||
# This is a 2-stage check to make sure we have the 64-bit SDK
|
||||
# We have to know where the SDK is installed.
|
||||
@@ -4304,7 +4313,7 @@ fi
|
||||
LINKBIN="link"
|
||||
fi
|
||||
|
||||
LIBS_GUI="gdi32.lib uxtheme.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib uuid.lib"
|
||||
LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib uuid.lib"
|
||||
|
||||
SHLIB_LD="${LINKBIN} -dll -incremental:no ${lflags}"
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
@@ -4884,7 +4893,6 @@ fi
|
||||
if test "$tcl_ok" = "no"; then
|
||||
CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
|
||||
DBGX=""
|
||||
|
||||
$as_echo "#define NDEBUG 1" >>confdefs.h
|
||||
|
||||
@@ -4896,7 +4904,6 @@ $as_echo "no" >&6; }
|
||||
else
|
||||
CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)'
|
||||
DBGX=g
|
||||
if test "$tcl_ok" = "yes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (standard debugging)" >&5
|
||||
$as_echo "yes (standard debugging)" >&6; }
|
||||
@@ -4931,7 +4938,7 @@ $as_echo "enabled $tcl_ok debugging" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
TCL_DBGX=${DBGX}
|
||||
TCL_DBGX=""
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Embed the manifest if we can determine how
|
||||
@@ -5036,17 +5043,9 @@ CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
if test ${SHARED_BUILD} = 0 ; then
|
||||
if test "${DBGX}" = "g"; then
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG"
|
||||
else
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
|
||||
fi
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
|
||||
else
|
||||
if test "${DBGX}" = "g"; then
|
||||
RC_DEFINES="${RC_DEFINE} DEBUG"
|
||||
else
|
||||
RC_DEFINES=""
|
||||
fi
|
||||
RC_DEFINES=""
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
@@ -5066,11 +5065,11 @@ fi
|
||||
# TCL_WIN_VERSION is the 4 dotted pair Windows version format which needs
|
||||
# the release level, and must account for interim release versioning
|
||||
case "$TCL_PATCH_LEVEL" in
|
||||
*a*) TCL_RELEASE_LEVEL=0 ;;
|
||||
*b*) TCL_RELEASE_LEVEL=1 ;;
|
||||
*alpha*) TCL_RELEASE_LEVEL=0 ;;
|
||||
*beta*) TCL_RELEASE_LEVEL=1 ;;
|
||||
*) TCL_RELEASE_LEVEL=2 ;;
|
||||
esac
|
||||
TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.`echo $TCL_PATCH_LEVEL | tr -d ab.`"
|
||||
TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.0`echo $TCL_PATCH_LEVEL | tr -d 0abehlpt\\\\-.`"
|
||||
|
||||
# X86|AMD64|IA64 for manifest
|
||||
|
||||
|
||||
+8
-16
@@ -14,8 +14,8 @@ SHELL=/bin/sh
|
||||
TCL_VERSION=8.7
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=7
|
||||
TCL_PATCH_LEVEL="a2"
|
||||
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
TCL_PATCH_LEVEL=".0-alpha.2"
|
||||
VER=$TCL_MAJOR_VERSION
|
||||
|
||||
TCL_DDE_VERSION=1.4
|
||||
TCL_DDE_MAJOR_VERSION=1
|
||||
@@ -268,7 +268,7 @@ fi
|
||||
|
||||
SC_ENABLE_SYMBOLS
|
||||
|
||||
TCL_DBGX=${DBGX}
|
||||
TCL_DBGX=""
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Embed the manifest if we can determine how
|
||||
@@ -324,17 +324,9 @@ CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
if test ${SHARED_BUILD} = 0 ; then
|
||||
if test "${DBGX}" = "g"; then
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG"
|
||||
else
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
|
||||
fi
|
||||
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
|
||||
else
|
||||
if test "${DBGX}" = "g"; then
|
||||
RC_DEFINES="${RC_DEFINE} DEBUG"
|
||||
else
|
||||
RC_DEFINES=""
|
||||
fi
|
||||
RC_DEFINES=""
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
@@ -354,11 +346,11 @@ fi
|
||||
# TCL_WIN_VERSION is the 4 dotted pair Windows version format which needs
|
||||
# the release level, and must account for interim release versioning
|
||||
case "$TCL_PATCH_LEVEL" in
|
||||
*a*) TCL_RELEASE_LEVEL=0 ;;
|
||||
*b*) TCL_RELEASE_LEVEL=1 ;;
|
||||
*alpha*) TCL_RELEASE_LEVEL=0 ;;
|
||||
*beta*) TCL_RELEASE_LEVEL=1 ;;
|
||||
*) TCL_RELEASE_LEVEL=2 ;;
|
||||
esac
|
||||
TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.`echo $TCL_PATCH_LEVEL | tr -d ab.`"
|
||||
TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.0`echo $TCL_PATCH_LEVEL | tr -d 0abehlpt\\\\-.`"
|
||||
AC_SUBST(TCL_WIN_VERSION)
|
||||
# X86|AMD64|IA64 for manifest
|
||||
AC_SUBST(MACHINE)
|
||||
|
||||
+947
-1257
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,109 @@
|
||||
# This file should only be included in makefiles for Tcl extensions,
|
||||
# NOT in the makefile for Tcl itself.
|
||||
|
||||
!ifndef _RULES_EXT_VC
|
||||
|
||||
# We need to run from the directory the parent makefile is located in.
|
||||
# nmake does not tell us what makefile was used to invoke it so parent
|
||||
# makefile has to set the MAKEFILEVC macro or we just make a guess and
|
||||
# warn if we think that is not the case.
|
||||
!if "$(MAKEFILEVC)" == ""
|
||||
|
||||
!if exist("$(PROJECT).vc")
|
||||
MAKEFILEVC = $(PROJECT).vc
|
||||
!elseif exist("makefile.vc")
|
||||
MAKEFILEVC = makefile.vc
|
||||
!endif
|
||||
!endif # "$(MAKEFILEVC)" == ""
|
||||
|
||||
!if !exist("$(MAKEFILEVC)")
|
||||
MSG = ^
|
||||
You must run nmake from the directory containing the project makefile.^
|
||||
If you are doing that and getting this message, set the MAKEFILEVC^
|
||||
macro to the name of the project makefile.
|
||||
!message WARNING: $(MSG)
|
||||
!endif
|
||||
|
||||
!if "$(PROJECT)" == "tcl"
|
||||
!error The rules-ext.vc file is not intended for Tcl itself.
|
||||
!endif
|
||||
|
||||
# First locate the Tcl directory that we are working with.
|
||||
!ifdef TCLDIR
|
||||
|
||||
_RULESDIR = $(TCLDIR:/=\)
|
||||
|
||||
!else
|
||||
|
||||
# If an installation path is specified, that is also the Tcl directory.
|
||||
# Also, tk never builds against an installed Tcl, it needs Tcl sources
|
||||
!if defined(INSTALLDIR) && "$(PROJECT)" != "tk"
|
||||
_RULESDIR=$(INSTALLDIR:/=\)
|
||||
!else
|
||||
_RULESDIR = ..\..\tcl
|
||||
!endif
|
||||
|
||||
!endif # ifndef TCLDIR
|
||||
|
||||
# Now look for the targets.vc file under the Tcl root. Note we check this
|
||||
# file and not rules.vc because the latter also exists on older systems.
|
||||
!if exist("$(_RULESDIR)\lib\nmake\targets.vc") # Building against installed Tcl
|
||||
_RULESDIR = $(_RULESDIR)\lib\nmake
|
||||
!elseif exist("$(_RULESDIR)\win\targets.vc") # Building against Tcl sources
|
||||
_RULESDIR = $(_RULESDIR)\win
|
||||
!else
|
||||
# If we have not located Tcl's targets file, most likely we are compiling
|
||||
# against an older version of Tcl and so must use our own support files.
|
||||
_RULESDIR = .
|
||||
!endif
|
||||
|
||||
!if "$(_RULESDIR)" != "."
|
||||
# Potentially using Tcl's support files. If this extension has its own
|
||||
# nmake support files, need to compare the versions and pick newer.
|
||||
|
||||
!if exist("rules.vc") # The extension has its own copy
|
||||
|
||||
# We extract version numbers using the nmakehlp program.
|
||||
!if [$(CC) -nologo "$(_RULESDIR)\nmakehlp.c" -link -subsystem:console > nul]
|
||||
!endif
|
||||
|
||||
!if [echo TCL_RULES_MAJOR = \> versions.vc] \
|
||||
&& [nmakehlp -V "$(_RULESDIR)\rules.vc" RULES_VERSION_MAJOR >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_RULES_MINOR = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_RULESDIR)\rules.vc" RULES_VERSION_MINOR >> versions.vc]
|
||||
!endif
|
||||
|
||||
!if [echo OUR_RULES_MAJOR = \>> versions.vc] \
|
||||
&& [nmakehlp -V "rules.vc" RULES_VERSION_MAJOR >> versions.vc]
|
||||
!endif
|
||||
!if [echo OUR_RULES_MINOR = \>> versions.vc] \
|
||||
&& [nmakehlp -V "rules.vc" RULES_VERSION_MINOR >> versions.vc]
|
||||
!endif
|
||||
!include versions.vc
|
||||
# We have a newer version of the support files, use them
|
||||
!if ($(TCL_RULES_MAJOR) != $(OUR_RULES_MAJOR)) || ($(TCL_RULES_MINOR) < $(OUR_RULES_MINOR))
|
||||
_RULESDIR = .
|
||||
!endif
|
||||
|
||||
!endif # if exist("rules.vc")
|
||||
|
||||
!endif # if $(_RULESDIR) != "."
|
||||
|
||||
# Let rules.vc know what copy of nmakehlp.c to use.
|
||||
NMAKEHLPC = $(_RULESDIR)\nmakehlp.c
|
||||
|
||||
# Get rid of our internal defines before calling rules.vc
|
||||
!undef TCL_RULES_MAJOR
|
||||
!undef TCL_RULES_MINOR
|
||||
!undef OUR_RULES_MAJOR
|
||||
!undef OUR_RULES_MINOR
|
||||
|
||||
!if exist("$(_RULESDIR)\rules.vc")
|
||||
!message *** Using $(_RULESDIR)\rules.vc
|
||||
!include "$(_RULESDIR)\rules.vc"
|
||||
!else
|
||||
!error *** Could not locate rules.vc in $(_RULESDIR)
|
||||
!endif
|
||||
|
||||
!endif # _RULES_EXT_VC
|
||||
+1392
-422
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
#------------------------------------------------------------- -*- makefile -*-
|
||||
# targets.vc --
|
||||
#
|
||||
# Part of the nmake based build system for Tcl and its extensions.
|
||||
# This file defines some standard targets for the convenience of extensions
|
||||
# and can be optionally included by the extension makefile.
|
||||
# See TIP 477 (https://core.tcl.tk/tips/doc/trunk/tip/477.md) for docs.
|
||||
|
||||
$(PROJECT): setup pkgindex $(PRJLIB)
|
||||
|
||||
!ifdef PRJ_STUBOBJS
|
||||
$(PROJECT): $(PRJSTUBLIB)
|
||||
$(PRJSTUBLIB): $(PRJ_STUBOBJS)
|
||||
$(LIBCMD) $**
|
||||
|
||||
$(PRJ_STUBOBJS):
|
||||
$(CCSTUBSCMD) %s
|
||||
!endif # PRJ_STUBOBJS
|
||||
|
||||
!ifdef PRJ_MANIFEST
|
||||
$(PROJECT): $(PRJLIB).manifest
|
||||
$(PRJLIB).manifest: $(PRJ_MANIFEST)
|
||||
@nmakehlp -s << $** >$@
|
||||
@MACHINE@ $(MACHINE:IX86=X86)
|
||||
<<
|
||||
!endif
|
||||
|
||||
!if "$(PROJECT)" != "tcl" && "$(PROJECT)" != "tk"
|
||||
$(PRJLIB): $(PRJ_OBJS) $(RESFILE)
|
||||
!if $(STATIC_BUILD)
|
||||
$(LIBCMD) $**
|
||||
!else
|
||||
$(DLLCMD) $**
|
||||
$(_VC_MANIFEST_EMBED_DLL)
|
||||
!endif
|
||||
-@del $*.exp
|
||||
!endif
|
||||
|
||||
!ifndef DISABLE_STANDARD_TARGETS
|
||||
DISABLE_STANDARD_TARGETS = 0
|
||||
!endif
|
||||
|
||||
!if !$(DISABLE_STANDARD_TARGETS)
|
||||
setup: default-setup
|
||||
install: default-install
|
||||
clean: default-clean
|
||||
realclean: hose
|
||||
hose: default-hose
|
||||
distclean: realclean default-distclean
|
||||
test: default-test
|
||||
shell: default-shell
|
||||
!endif
|
||||
+8
-8
@@ -36,7 +36,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP BASE Intermediate_Dir "Release\tcl_Dynamic"
|
||||
# PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=none MSVCDIR=IDE"
|
||||
# PROP BASE Rebuild_Opt "-a"
|
||||
# PROP BASE Target_File "Release\tclsh87.exe"
|
||||
# PROP BASE Target_File "Release\tclsh8.exe"
|
||||
# PROP BASE Bsc_Name ""
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
@@ -45,7 +45,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP Intermediate_Dir "Release\tcl_Dynamic"
|
||||
# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads MSVCDIR=IDE"
|
||||
# PROP Rebuild_Opt "clean release"
|
||||
# PROP Target_File "Release\tclsh87t.exe"
|
||||
# PROP Target_File "Release\tclsh8.exe"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
@@ -57,7 +57,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP BASE Intermediate_Dir "Debug\tcl_Dynamic"
|
||||
# PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols MSVCDIR=IDE"
|
||||
# PROP BASE Rebuild_Opt "-a"
|
||||
# PROP BASE Target_File "Debug\tclsh87g.exe"
|
||||
# PROP BASE Target_File "Debug\tclsh8.exe"
|
||||
# PROP BASE Bsc_Name ""
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
@@ -66,7 +66,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP Intermediate_Dir "Debug\tcl_Dynamic"
|
||||
# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads,symbols MSVCDIR=IDE"
|
||||
# PROP Rebuild_Opt "clean release"
|
||||
# PROP Target_File "Debug\tclsh87tg.exe"
|
||||
# PROP Target_File "Debug\tclsh8.exe"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
@@ -78,7 +78,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP BASE Intermediate_Dir "Debug\tcl_Static"
|
||||
# PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols,static MSVCDIR=IDE"
|
||||
# PROP BASE Rebuild_Opt "-a"
|
||||
# PROP BASE Target_File "Debug\tclsh87sg.exe"
|
||||
# PROP BASE Target_File "Debug\tclsh8.exe"
|
||||
# PROP BASE Bsc_Name ""
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
@@ -87,7 +87,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP Intermediate_Dir "Debug\tcl_Static"
|
||||
# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols,static MSVCDIR=IDE"
|
||||
# PROP Rebuild_Opt "-a"
|
||||
# PROP Target_File "Debug\tclsh87sg.exe"
|
||||
# PROP Target_File "Debug\tclsh8.exe"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
@@ -99,7 +99,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP BASE Intermediate_Dir "Release\tcl_Static"
|
||||
# PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=static MSVCDIR=IDE"
|
||||
# PROP BASE Rebuild_Opt "-a"
|
||||
# PROP BASE Target_File "Release\tclsh87s.exe"
|
||||
# PROP BASE Target_File "Release\tclsh8.exe"
|
||||
# PROP BASE Bsc_Name ""
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
@@ -108,7 +108,7 @@ CFG=tcl - Win32 Debug Static
|
||||
# PROP Intermediate_Dir "Release\tcl_Static"
|
||||
# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=static MSVCDIR=IDE"
|
||||
# PROP Rebuild_Opt "-a"
|
||||
# PROP Target_File "Release\tclsh87s.exe"
|
||||
# PROP Target_File "Release\tclsh8.exe"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
|
||||
+19
-20
@@ -442,7 +442,6 @@ AC_DEFUN([SC_ENABLE_THREADS], [
|
||||
# Sets to $(CFLAGS_OPTIMIZE) if false
|
||||
# LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true
|
||||
# Sets to $(LDFLAGS_OPTIMIZE) if false
|
||||
# DBGX Debug library extension
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
@@ -453,7 +452,6 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
|
||||
if test "$tcl_ok" = "no"; then
|
||||
CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
|
||||
DBGX=""
|
||||
AC_DEFINE(NDEBUG, 1, [Is no debugging enabled?])
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
@@ -461,7 +459,6 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
|
||||
else
|
||||
CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
|
||||
LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)'
|
||||
DBGX=g
|
||||
if test "$tcl_ok" = "yes"; then
|
||||
AC_MSG_RESULT([yes (standard debugging)])
|
||||
fi
|
||||
@@ -550,6 +547,8 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
|
||||
AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo)
|
||||
|
||||
AC_ARG_WITH(dbgx, [ --with-dbgx debug extension for binaries], with_dbgx=${withval})
|
||||
|
||||
SHLIB_SUFFIX=".dll"
|
||||
|
||||
# MACHINE is IX86 for LINK, but this is used by the manifest,
|
||||
@@ -664,7 +663,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
LIBS="-lnetapi32 -lkernel32 -luser32 -ladvapi32 -luserenv -lws2_32"
|
||||
# mingw needs to link ole32 and oleaut32 for [send], but MSVC doesn't
|
||||
LIBS_GUI="-luxtheme -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -luuid -lole32 -loleaut32"
|
||||
LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -luuid -lole32 -loleaut32"
|
||||
STLIB_LD='${AR} cr'
|
||||
RC_OUT=-o
|
||||
RC_TYPE=
|
||||
@@ -682,7 +681,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
AC_MSG_RESULT([using static flags])
|
||||
runtime=
|
||||
LIBRARIES="\${STATIC_LIBRARIES}"
|
||||
EXESUFFIX="s\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
else
|
||||
# dynamic
|
||||
AC_MSG_RESULT([using shared flags])
|
||||
@@ -696,7 +695,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
runtime=
|
||||
# Add SHLIB_LD_LIBS to the Make rule, not here.
|
||||
|
||||
EXESUFFIX="\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
LIBRARIES="\${SHARED_LIBRARIES}"
|
||||
fi
|
||||
# Link with gcc since ld does not link to default libs like
|
||||
@@ -707,9 +706,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
-Wl,--out-implib,\$(patsubst %.dll,lib%.a,\[$]@)"
|
||||
# DLLSUFFIX is separate because it is the building block for
|
||||
# users of tclConfig.sh that may build shared or static.
|
||||
DLLSUFFIX="\${DBGX}.dll"
|
||||
LIBSUFFIX="\${DBGX}.a"
|
||||
LIBFLAGSUFFIX="\${DBGX}"
|
||||
DLLSUFFIX="${with_dbgx}.dll"
|
||||
LIBSUFFIX="${with_dbgx}.a"
|
||||
LIBFLAGSUFFIX="${with_dbgx}"
|
||||
SHLIB_SUFFIX=.dll
|
||||
|
||||
EXTRA_CFLAGS="${extra_cflags}"
|
||||
@@ -772,14 +771,14 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
AC_MSG_RESULT([using static flags])
|
||||
runtime=-MT
|
||||
LIBRARIES="\${STATIC_LIBRARIES}"
|
||||
EXESUFFIX="s\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
else
|
||||
# dynamic
|
||||
AC_MSG_RESULT([using shared flags])
|
||||
runtime=-MD
|
||||
# Add SHLIB_LD_LIBS to the Make rule, not here.
|
||||
LIBRARIES="\${SHARED_LIBRARIES}"
|
||||
EXESUFFIX="\${DBGX}.exe"
|
||||
EXESUFFIX="${with_dbgx}.exe"
|
||||
case "x`echo \${VisualStudioVersion}`" in
|
||||
x1[[4-9]]*)
|
||||
lflags="${lflags} -nodefaultlib:libucrt.lib"
|
||||
@@ -791,9 +790,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
MAKE_DLL="\${SHLIB_LD} \$(LDFLAGS) -out:\[$]@"
|
||||
# DLLSUFFIX is separate because it is the building block for
|
||||
# users of tclConfig.sh that may build shared or static.
|
||||
DLLSUFFIX="\${DBGX}.dll"
|
||||
LIBSUFFIX="\${DBGX}.lib"
|
||||
LIBFLAGSUFFIX="\${DBGX}"
|
||||
DLLSUFFIX="${with_dbgx}.dll"
|
||||
LIBSUFFIX="${with_dbgx}.lib"
|
||||
LIBFLAGSUFFIX="${with_dbgx}"
|
||||
|
||||
# This is a 2-stage check to make sure we have the 64-bit SDK
|
||||
# We have to know where the SDK is installed.
|
||||
@@ -860,7 +859,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
LINKBIN="link"
|
||||
fi
|
||||
|
||||
LIBS_GUI="gdi32.lib uxtheme.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib uuid.lib"
|
||||
LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib uuid.lib"
|
||||
|
||||
SHLIB_LD="${LINKBIN} -dll -incremental:no ${lflags}"
|
||||
SHLIB_LD_LIBS='${LIBS}'
|
||||
@@ -1024,13 +1023,13 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([SC_WITH_TCL], [
|
||||
if test -d ../../tcl8.7$1/win; then
|
||||
TCL_BIN_DEFAULT=../../tcl8.7$1/win
|
||||
if test -d ../../tcl8$1/win; then
|
||||
TCL_BIN_DEFAULT=../../tcl8$1/win
|
||||
else
|
||||
TCL_BIN_DEFAULT=../../tcl8.7/win
|
||||
TCL_BIN_DEFAULT=../../tcl8/win
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(tcl, [ --with-tcl=DIR use Tcl 8.7 binaries from DIR],
|
||||
AC_ARG_WITH(tcl, [ --with-tcl=DIR use Tcl 8 binaries from DIR],
|
||||
TCL_BIN_DIR=$withval, TCL_BIN_DIR=`cd $TCL_BIN_DEFAULT; pwd`)
|
||||
if test ! -d $TCL_BIN_DIR; then
|
||||
AC_MSG_ERROR(Tcl directory $TCL_BIN_DIR does not exist)
|
||||
@@ -1111,7 +1110,7 @@ AC_DEFUN([SC_PROG_TCLSH], [
|
||||
|
||||
AC_DEFUN([SC_BUILD_TCLSH], [
|
||||
AC_MSG_CHECKING([for tclsh in Tcl build directory])
|
||||
BUILD_TCLSH=${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}
|
||||
BUILD_TCLSH=${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${EXEEXT}
|
||||
AC_MSG_RESULT($BUILD_TCLSH)
|
||||
AC_SUBST(BUILD_TCLSH)
|
||||
])
|
||||
|
||||
+1
-19
@@ -4,24 +4,6 @@
|
||||
#include <winver.h>
|
||||
#include <tcl.h>
|
||||
|
||||
//
|
||||
// build-up the name suffix that defines the type of build this is.
|
||||
//
|
||||
#if TCL_THREADS
|
||||
#define SUFFIX_THREADS "t"
|
||||
#else
|
||||
#define SUFFIX_THREADS ""
|
||||
#endif
|
||||
|
||||
#if DEBUG && !UNCHECKED
|
||||
#define SUFFIX_DEBUG "g"
|
||||
#else
|
||||
#define SUFFIX_DEBUG ""
|
||||
#endif
|
||||
|
||||
#define SUFFIX SUFFIX_THREADS SUFFIX_DEBUG
|
||||
|
||||
|
||||
LANGUAGE 0x9, 0x1 /* LANG_ENGLISH, SUBLANG_DEFAULT */
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
@@ -42,7 +24,7 @@ BEGIN
|
||||
BLOCK "040904b0" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Unicode CP */
|
||||
BEGIN
|
||||
VALUE "FileDescription", "Tcl DLL\0"
|
||||
VALUE "OriginalFilename", "tcl" STRINGIFY(TCL_MAJOR_VERSION) STRINGIFY(TCL_MINOR_VERSION) SUFFIX ".dll\0"
|
||||
VALUE "OriginalFilename", PRJLIBNAME
|
||||
VALUE "CompanyName", "ActiveState Corporation\0"
|
||||
VALUE "FileVersion", TCL_PATCH_LEVEL
|
||||
VALUE "LegalCopyright", "Copyright \251 2001 by ActiveState Corporation, et al\0"
|
||||
|
||||
+5
-5
@@ -23,9 +23,10 @@ TCL_CC='@CC@'
|
||||
# -D flags for use with the C compiler.
|
||||
TCL_DEFS='@DEFS@'
|
||||
|
||||
# If TCL was built with debugging symbols, generated libraries contain
|
||||
# this string at the end of the library name (before the extension).
|
||||
TCL_DBGX=@TCL_DBGX@
|
||||
# TCL_DBGX used to be used to distinguish debug vs. non-debug builds.
|
||||
# This was a righteous pain so the core doesn't do that any more.
|
||||
# DEPRECATED, will be removed in Tcl 9!
|
||||
TCL_DBGX=
|
||||
|
||||
# Default flags used in an optimized and debuggable build, respectively.
|
||||
TCL_CFLAGS_DEBUG='@CFLAGS_DEBUG@'
|
||||
@@ -124,7 +125,7 @@ TCL_INCLUDE_SPEC='@TCL_INCLUDE_SPEC@'
|
||||
# Indicates whether a version numbers should be used in -l switches
|
||||
# ("ok" means it's safe to use switches like -ltcl7.5; "nodots" means
|
||||
# use switches like -ltcl75). SunOS and FreeBSD require "nodots", for
|
||||
# example.
|
||||
# example. DEPRECATED, will be removed in Tcl 9!
|
||||
TCL_LIB_VERSIONS_OK='@TCL_LIB_VERSIONS_OK@'
|
||||
|
||||
# String that can be evaluated to generate the part of a shared library
|
||||
@@ -178,4 +179,3 @@ TCL_STUB_LIB_PATH='@TCL_STUB_LIB_PATH@'
|
||||
|
||||
# Flag, 1: we built Tcl with threads enabled, 0 we didn't
|
||||
TCL_THREADS=@TCL_THREADS@
|
||||
|
||||
|
||||
+1
-25
@@ -5,30 +5,6 @@
|
||||
#include <winver.h>
|
||||
#include <tcl.h>
|
||||
|
||||
//
|
||||
// build-up the name suffix that defines the type of build this is.
|
||||
//
|
||||
#if TCL_THREADS
|
||||
#define SUFFIX_THREADS "t"
|
||||
#else
|
||||
#define SUFFIX_THREADS ""
|
||||
#endif
|
||||
|
||||
#if STATIC_BUILD
|
||||
#define SUFFIX_STATIC "s"
|
||||
#else
|
||||
#define SUFFIX_STATIC ""
|
||||
#endif
|
||||
|
||||
#if DEBUG && !UNCHECKED
|
||||
#define SUFFIX_DEBUG "g"
|
||||
#else
|
||||
#define SUFFIX_DEBUG ""
|
||||
#endif
|
||||
|
||||
#define SUFFIX SUFFIX_THREADS SUFFIX_STATIC SUFFIX_DEBUG
|
||||
|
||||
|
||||
LANGUAGE 0x9, 0x1 /* LANG_ENGLISH, SUBLANG_DEFAULT */
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
@@ -49,7 +25,7 @@ BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "FileDescription", "Tclsh Application\0"
|
||||
VALUE "OriginalFilename", "tclsh" STRINGIFY(TCL_MAJOR_VERSION) STRINGIFY(TCL_MINOR_VERSION) SUFFIX ".exe\0"
|
||||
VALUE "OriginalFilename", "tclsh" STRINGIFY(TCL_MAJOR_VERSION) ".exe\0"
|
||||
VALUE "CompanyName", "ActiveState Corporation\0"
|
||||
VALUE "FileVersion", TCL_PATCH_LEVEL
|
||||
VALUE "LegalCopyright", "Copyright \251 2000 by ActiveState Corporation, et al\0"
|
||||
|
||||
Reference in New Issue
Block a user