Compare commits
14
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b704d6109f | ||
|
|
4a26a1838e | ||
|
|
e55dac43d3 | ||
|
|
1372e717b2 | ||
|
|
e5bb98573f | ||
|
|
7132cd51d2 | ||
|
|
7ac6e34f2d | ||
|
|
e366e0df96 | ||
|
|
c3327b0ec9 | ||
|
|
a140c14d00 | ||
|
|
593a81fd96 | ||
|
|
f4b82b38c3 | ||
|
|
305fdc7cb9 | ||
|
|
a0174b3598 |
+18
-7
@@ -20,6 +20,17 @@
|
||||
#undef Tcl_FindHashEntry
|
||||
#undef Tcl_CreateHashEntry
|
||||
|
||||
|
||||
#if !defined(HASH2PTR) && !defined(PTR2HASH)
|
||||
# if defined(HAVE_UINTPTR_T) || defined(uintptr_t)
|
||||
# define HASH2PTR(p) ((void *)(uintptr_t)(p))
|
||||
# define PTR2HASH(p) ((TCL_HASH_TYPE)(uintptr_t)(p))
|
||||
# else
|
||||
# define HASH2PTR(p) ((void *)(p))
|
||||
# define PTR2HASH(p) ((TCL_HASH_TYPE)(p))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* When there are this many entries per bucket, on average, rebuild the hash
|
||||
* table to make it larger.
|
||||
@@ -273,7 +284,7 @@ CreateHashEntry(
|
||||
{
|
||||
register Tcl_HashEntry *hPtr;
|
||||
const Tcl_HashKeyType *typePtr;
|
||||
unsigned int hash;
|
||||
TCL_HASH_TYPE hash;
|
||||
int index;
|
||||
|
||||
if (tablePtr->keyType == TCL_STRING_KEYS) {
|
||||
@@ -295,7 +306,7 @@ CreateHashEntry(
|
||||
index = hash & tablePtr->mask;
|
||||
}
|
||||
} else {
|
||||
hash = PTR2UINT(key);
|
||||
hash = PTR2HASH(key);
|
||||
index = RANDOM_INDEX(tablePtr, hash);
|
||||
}
|
||||
|
||||
@@ -308,7 +319,7 @@ CreateHashEntry(
|
||||
|
||||
for (hPtr = tablePtr->buckets[index]; hPtr != NULL;
|
||||
hPtr = hPtr->nextPtr) {
|
||||
if (hash != PTR2UINT(hPtr->hash)) {
|
||||
if (hash != PTR2HASH(hPtr->hash)) {
|
||||
continue;
|
||||
}
|
||||
if (((void *) key == hPtr) || compareKeysProc((void *) key, hPtr)) {
|
||||
@@ -321,7 +332,7 @@ CreateHashEntry(
|
||||
} else {
|
||||
for (hPtr = tablePtr->buckets[index]; hPtr != NULL;
|
||||
hPtr = hPtr->nextPtr) {
|
||||
if (hash != PTR2UINT(hPtr->hash)) {
|
||||
if (hash != PTR2HASH(hPtr->hash)) {
|
||||
continue;
|
||||
}
|
||||
if (key == hPtr->key.oneWordValue) {
|
||||
@@ -351,7 +362,7 @@ CreateHashEntry(
|
||||
}
|
||||
|
||||
hPtr->tablePtr = tablePtr;
|
||||
hPtr->hash = UINT2PTR(hash);
|
||||
hPtr->hash = HASH2PTR(hash);
|
||||
hPtr->nextPtr = tablePtr->buckets[index];
|
||||
tablePtr->buckets[index] = hPtr;
|
||||
tablePtr->numEntries++;
|
||||
@@ -412,7 +423,7 @@ Tcl_DeleteHashEntry(
|
||||
|| typePtr->flags & TCL_HASH_KEY_RANDOMIZE_HASH) {
|
||||
index = RANDOM_INDEX(tablePtr, PTR2INT(entryPtr->hash));
|
||||
} else {
|
||||
index = PTR2UINT(entryPtr->hash) & tablePtr->mask;
|
||||
index = PTR2HASH(entryPtr->hash) & tablePtr->mask;
|
||||
}
|
||||
|
||||
bucketPtr = &tablePtr->buckets[index];
|
||||
@@ -1040,7 +1051,7 @@ RebuildTable(
|
||||
|| typePtr->flags & TCL_HASH_KEY_RANDOMIZE_HASH) {
|
||||
index = RANDOM_INDEX(tablePtr, PTR2INT(hPtr->hash));
|
||||
} else {
|
||||
index = PTR2UINT(hPtr->hash) & tablePtr->mask;
|
||||
index = PTR2HASH(hPtr->hash) & tablePtr->mask;
|
||||
}
|
||||
hPtr->nextPtr = tablePtr->buckets[index];
|
||||
tablePtr->buckets[index] = hPtr;
|
||||
|
||||
+214
-28
@@ -4165,6 +4165,29 @@ AllocObjEntry(
|
||||
return hPtr;
|
||||
}
|
||||
|
||||
static inline unsigned char
|
||||
IntObjIsCanonical(
|
||||
Tcl_Obj *objPtr)
|
||||
{
|
||||
const char *p = objPtr->bytes;
|
||||
|
||||
/*
|
||||
* Canonical integers are:
|
||||
* without or with simple representation (like 0..9)
|
||||
* not hex, octal and not prefixed with + (consider minus-char as sign)
|
||||
* and does not contains spaces
|
||||
*/
|
||||
return (
|
||||
!p || objPtr->length == 1 /* simplest cases */
|
||||
|| (
|
||||
(
|
||||
(*p > '0') /* not 0x..., 0o..., 00..., space... */
|
||||
|| (*p == '-' && p[1] > '0') /* not -0 and -space... */
|
||||
)
|
||||
&& (p[objPtr->length-1] >= '0') /* not ...space */
|
||||
)
|
||||
);
|
||||
}
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
@@ -4187,9 +4210,8 @@ TclCompareObjKeys(
|
||||
void *keyPtr, /* New key to compare. */
|
||||
Tcl_HashEntry *hPtr) /* Existing key to compare. */
|
||||
{
|
||||
Tcl_Obj *objPtr1 = keyPtr;
|
||||
Tcl_Obj *objPtr2 = (Tcl_Obj *) hPtr->key.oneWordValue;
|
||||
register const char *p1, *p2;
|
||||
register Tcl_Obj *objPtr1 = keyPtr;
|
||||
register Tcl_Obj *objPtr2 = hPtr->key.objPtr;
|
||||
register size_t l1, l2;
|
||||
|
||||
/*
|
||||
@@ -4199,32 +4221,87 @@ TclCompareObjKeys(
|
||||
if (objPtr1 == objPtr2) return 1;
|
||||
*/
|
||||
|
||||
/*
|
||||
* Don't use Tcl_GetStringFromObj as it would prevent l1 and l2 being
|
||||
* in a register.
|
||||
/*
|
||||
* Optimisation for comparing integer objects
|
||||
* This allows also to avoid generation of string representation, so
|
||||
* saves memory consumption (CPU-cache washout, branch mispredictions, etc)
|
||||
*/
|
||||
|
||||
p1 = TclGetString(objPtr1);
|
||||
/* If both are not integer - compare strings */
|
||||
if (objPtr1->typePtr != &tclIntType && objPtr2->typePtr != &tclIntType) {
|
||||
goto stringCompare;
|
||||
}
|
||||
|
||||
/* If both are integer */
|
||||
if (objPtr1->typePtr == &tclIntType && objPtr2->typePtr == &tclIntType) {
|
||||
unsigned char c1, c2;
|
||||
/*
|
||||
* Check integers are equal ...
|
||||
*/
|
||||
if (objPtr1->internalRep.wideValue != objPtr2->internalRep.wideValue) {
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* Integers are equal, so check they are canonical ...
|
||||
*/
|
||||
c1 = IntObjIsCanonical(objPtr1);
|
||||
c2 = IntObjIsCanonical(objPtr2);
|
||||
if (!(c1 | c2)) {
|
||||
/*
|
||||
* both are not canonical: compare string representations
|
||||
* (which is already available)
|
||||
*/
|
||||
goto stringCompare;
|
||||
}
|
||||
/*
|
||||
* both are canonical, so equal - return 1,
|
||||
* or one of them is not, then not equal - return 0
|
||||
*/
|
||||
return (c1 & c2);
|
||||
}
|
||||
|
||||
/*
|
||||
* One of them is not an integer so compare string representations.
|
||||
*
|
||||
* Ensure we have both strings (don't use Tcl_GetStringFromObj as
|
||||
* it would prevent l1 and l2 being in a register).
|
||||
*/
|
||||
TclGetString(objPtr1);
|
||||
TclGetString(objPtr2);
|
||||
|
||||
stringCompare:
|
||||
|
||||
/*
|
||||
* Normally we don't need to get strings, because if it is expected, it is
|
||||
* already done in TclHashObjKey or above, so simply protect by assert here
|
||||
*/
|
||||
assert(objPtr1->bytes && objPtr2->bytes);
|
||||
|
||||
l1 = objPtr1->length;
|
||||
p2 = TclGetString(objPtr2);
|
||||
l2 = objPtr2->length;
|
||||
|
||||
/*
|
||||
* Only compare if the string representations are of the same length.
|
||||
* Only compare string representations of the same length.
|
||||
*/
|
||||
|
||||
if (l1 == l2) {
|
||||
for (;; p1++, p2++, l1--) {
|
||||
if (*p1 != *p2) {
|
||||
break;
|
||||
}
|
||||
if (l1 == 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (l1 != l2) {
|
||||
return 0;
|
||||
} else {
|
||||
register const char *p1, *p2;
|
||||
|
||||
return 0;
|
||||
if (!l1) { /* empty string are equal */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* compare both strings */
|
||||
p1 = objPtr1->bytes; p2 = objPtr2->bytes;
|
||||
do {
|
||||
if (*p1++ != *p2++) {
|
||||
return 0;
|
||||
}
|
||||
} while (--l1);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4277,9 +4354,9 @@ TclHashObjKey(
|
||||
void *keyPtr) /* Key from which to compute hash value. */
|
||||
{
|
||||
Tcl_Obj *objPtr = keyPtr;
|
||||
int length;
|
||||
const char *string = TclGetStringFromObj(objPtr, &length);
|
||||
unsigned int result = 0;
|
||||
size_t length;
|
||||
const char *string;
|
||||
TCL_HASH_TYPE result = 0;
|
||||
|
||||
/*
|
||||
* I tried a zillion different hash functions and asked many other people
|
||||
@@ -4315,13 +4392,122 @@ TclHashObjKey(
|
||||
* See [tcl-Feature Request #2958832]
|
||||
*/
|
||||
|
||||
if (length > 0) {
|
||||
result = UCHAR(*string);
|
||||
while (--length) {
|
||||
result += (result << 3) + UCHAR(*++string);
|
||||
/*
|
||||
* TIP #534, use fast integer hashing if it is canonical
|
||||
*/
|
||||
if (objPtr->typePtr == &tclIntType && IntObjIsCanonical(objPtr)) {
|
||||
Tcl_WideUInt num = objPtr->internalRep.wideValue;
|
||||
/* remove sign and hash it differently */
|
||||
if (objPtr->internalRep.wideValue < 0) {
|
||||
num = -(Tcl_WideInt)num;
|
||||
result = (TCL_HASH_TYPE)'-' << 31; /* 45<<31 == 0x(x64?16:0)80000000 */
|
||||
}
|
||||
/* if will be optimized to compile time */
|
||||
if (((TCL_HASH_TYPE)-1) >= UWIDE_MAX) {
|
||||
/* unsigned 64-bit as unsigned 64-bit integer */
|
||||
result += (TCL_HASH_TYPE)objPtr->internalRep.wideValue;
|
||||
} else {
|
||||
/* unsigned 64-bit as sum of parts in 32-bit unsigned */
|
||||
result += (TCL_HASH_TYPE)(num / 1000000000)
|
||||
+ (TCL_HASH_TYPE)(num % 1000000000);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Hash string considering numeric (TIP #534), if it looks like a number
|
||||
* use fastest string to number conversion, thereby we don't care about
|
||||
* possible non-numeric characters, because it is just a hash value.
|
||||
*/
|
||||
|
||||
string = TclGetString(objPtr);
|
||||
length = objPtr->length;
|
||||
|
||||
if (!length) { return result; }
|
||||
|
||||
if (*string == '-') {
|
||||
result = '-';
|
||||
string++; length--;
|
||||
if (!length) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return (TCL_HASH_TYPE) result;
|
||||
|
||||
if (length <= 19 && *string <= '9' && *string >= '0') {
|
||||
/* if will be optimized to compile time */
|
||||
if (((TCL_HASH_TYPE)-1) >= UWIDE_MAX) {
|
||||
/* hash is 64-bit, assume compiled as x64 */
|
||||
Tcl_WideUInt num = 0;
|
||||
switch (length) {
|
||||
/* signed 64-bit int is max 19 chars = (+/-)9223372036854775807L */
|
||||
case 19: num += (*string++ - '0') * 1000000000000000000;
|
||||
case 18: num += (*string++ - '0') * 100000000000000000;
|
||||
case 17: num += (*string++ - '0') * 10000000000000000;
|
||||
case 16: num += (*string++ - '0') * 1000000000000000;
|
||||
case 15: num += (*string++ - '0') * 100000000000000;
|
||||
case 14: num += (*string++ - '0') * 10000000000000;
|
||||
case 13: num += (*string++ - '0') * 1000000000000;
|
||||
case 12: num += (*string++ - '0') * 100000000000;
|
||||
case 11: num += (*string++ - '0') * 10000000000;
|
||||
/* signed 32-bit int is max 10 chars = (+/-)2147483647 */
|
||||
case 10: num += (*string++ - '0') * 1000000000;
|
||||
case 9: num += (*string++ - '0') * 100000000;
|
||||
case 8: num += (*string++ - '0') * 10000000;
|
||||
case 7: num += (*string++ - '0') * 1000000;
|
||||
case 6: num += (*string++ - '0') * 100000;
|
||||
case 5: num += (*string++ - '0') * 10000;
|
||||
case 4: num += (*string++ - '0') * 1000;
|
||||
case 3: num += (*string++ - '0') * 100;
|
||||
case 2: num += (*string++ - '0') * 10;
|
||||
case 1: num += (*string++ - '0');
|
||||
}
|
||||
/* result considering sign (if result is '-', "negate" numeric) */
|
||||
result <<= 31; /* 45<<31 == 0x(x64?16:0)80000000 */
|
||||
result += (TCL_HASH_TYPE)num;
|
||||
} else {
|
||||
/* 32-bit hash (int calculation is faster) */
|
||||
unsigned int hnm = 0;
|
||||
unsigned int lnm = 0;
|
||||
switch (length) {
|
||||
/* high part of hash (wide / 1000000000) */
|
||||
case 19: hnm += (*string++ - '0') * 100000000 * 10;
|
||||
case 18: hnm += (*string++ - '0') * 100000000;
|
||||
case 17: hnm += (*string++ - '0') * 10000000;
|
||||
case 16: hnm += (*string++ - '0') * 1000000;
|
||||
case 15: hnm += (*string++ - '0') * 100000;
|
||||
case 14: hnm += (*string++ - '0') * 10000;
|
||||
case 13: hnm += (*string++ - '0') * 1000;
|
||||
case 12: hnm += (*string++ - '0') * 100;
|
||||
case 11: hnm += (*string++ - '0') * 10;
|
||||
case 10: hnm += (*string++ - '0');
|
||||
/* low part of hash (wide % 1000000000) */
|
||||
case 9: lnm += (*string++ - '0') * 100000000;
|
||||
case 8: lnm += (*string++ - '0') * 10000000;
|
||||
case 7: lnm += (*string++ - '0') * 1000000;
|
||||
case 6: lnm += (*string++ - '0') * 100000;
|
||||
case 5: lnm += (*string++ - '0') * 10000;
|
||||
case 4: lnm += (*string++ - '0') * 1000;
|
||||
case 3: lnm += (*string++ - '0') * 100;
|
||||
case 2: lnm += (*string++ - '0') * 10;
|
||||
case 1: lnm += (*string++ - '0');
|
||||
}
|
||||
/* result considering sign (if result is '-', "negate" numeric) */
|
||||
result <<= 31; /* 45<<31 == 0x(x64?16:0)80000000 */
|
||||
result += (TCL_HASH_TYPE)hnm + (TCL_HASH_TYPE)lnm;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fast string hashing (non-numeric)
|
||||
*/
|
||||
result = (result << 3) + UCHAR(*string);
|
||||
while (--length) {
|
||||
result += (result << 3) + UCHAR(*++string);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+1
-36
@@ -26,13 +26,12 @@
|
||||
|
||||
static Tcl_HashEntry * AllocVarEntry(Tcl_HashTable *tablePtr, void *keyPtr);
|
||||
static void FreeVarEntry(Tcl_HashEntry *hPtr);
|
||||
static int CompareVarKeys(void *keyPtr, Tcl_HashEntry *hPtr);
|
||||
|
||||
static const Tcl_HashKeyType tclVarHashKeyType = {
|
||||
TCL_HASH_KEY_TYPE_VERSION, /* version */
|
||||
0, /* flags */
|
||||
TclHashObjKey, /* hashKeyProc */
|
||||
CompareVarKeys, /* compareKeysProc */
|
||||
TclCompareObjKeys, /* compareKeysProc */
|
||||
AllocVarEntry, /* allocEntryProc */
|
||||
FreeVarEntry /* freeEntryProc */
|
||||
};
|
||||
@@ -6592,40 +6591,6 @@ FreeVarEntry(
|
||||
}
|
||||
Tcl_DecrRefCount(objPtr);
|
||||
}
|
||||
|
||||
static int
|
||||
CompareVarKeys(
|
||||
void *keyPtr, /* New key to compare. */
|
||||
Tcl_HashEntry *hPtr) /* Existing key to compare. */
|
||||
{
|
||||
Tcl_Obj *objPtr1 = keyPtr;
|
||||
Tcl_Obj *objPtr2 = hPtr->key.objPtr;
|
||||
register const char *p1, *p2;
|
||||
register int l1, l2;
|
||||
|
||||
/*
|
||||
* If the object pointers are the same then they match.
|
||||
* OPT: this comparison was moved to the caller
|
||||
*
|
||||
* if (objPtr1 == objPtr2) return 1;
|
||||
*/
|
||||
|
||||
/*
|
||||
* Don't use Tcl_GetStringFromObj as it would prevent l1 and l2 being in a
|
||||
* register.
|
||||
*/
|
||||
|
||||
p1 = TclGetString(objPtr1);
|
||||
l1 = objPtr1->length;
|
||||
p2 = TclGetString(objPtr2);
|
||||
l2 = objPtr2->length;
|
||||
|
||||
/*
|
||||
* Only compare string representations of the same length.
|
||||
*/
|
||||
|
||||
return ((l1 == l2) && !memcmp(p1, p2, l1));
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
*
|
||||
|
||||
@@ -819,6 +819,40 @@ test dict-15.13 {dict set command} -returnCodes error -body {
|
||||
unset dictVar
|
||||
} -result {missing value to go with key}
|
||||
|
||||
# note also similar test in var.test...
|
||||
test dict-15.21 {corner cases of int-hash optimizations (TIP 534} -setup {
|
||||
unset -nocomplain d
|
||||
} -body {
|
||||
# check integer hash is equal string hash for values from [$i-5 .. $i+5]:
|
||||
foreach i {
|
||||
0
|
||||
0x55555555 0xaaaaaaaa 0x7fffffff 0xffffffff
|
||||
0x5555555555555555 0xaaaaaaaaaaaaaaaa 0x7fffffffffffffff 0xffffffffffffffff
|
||||
0x7fffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff
|
||||
} {
|
||||
# not canonical int's (positive / negative):
|
||||
expr {$i}; # make int
|
||||
dict set d $i 1; dict get $d [string trim "$i "]; dict unset d $i
|
||||
dict set d [string trim "$i "] 2; dict unset d $i
|
||||
set j -$i
|
||||
expr {$j}; # make int
|
||||
dict set d $j 1; dict get $d [string trim "$j "]; dict unset d $j
|
||||
dict set d [string trim "$j "] 2; dict unset d $j
|
||||
# canonical int form (positive / negative):
|
||||
set i [expr {$i - 5}]
|
||||
time {
|
||||
dict set d [incr i] 1; dict get $d [string trim "$i "]; dict unset d $i
|
||||
dict set d [string trim "$i "] 2; incr i; incr i -1; dict unset d $i
|
||||
set j [expr {-$i}]
|
||||
dict set d [incr j] 1; dict get $d [string trim "$j "]; dict unset d $j
|
||||
dict set d [string trim "$j "] 2; incr j; incr j -1; dict unset d $j
|
||||
} 10
|
||||
}
|
||||
dict size $d
|
||||
} -cleanup {
|
||||
unset -nocomplain d
|
||||
} -result 0
|
||||
|
||||
test dict-16.1 {dict unset command} -body {
|
||||
set dictVar {a b c d}
|
||||
dict unset dictVar a
|
||||
|
||||
@@ -1479,6 +1479,40 @@ test var-24.24 {array default unset: errors} -setup {
|
||||
} -returnCodes error -cleanup {
|
||||
unset -nocomplain ary
|
||||
} -result * -match glob
|
||||
|
||||
# note also similar test in dict.test...
|
||||
test var-25.1 {corner cases of int-hash optimizations (TIP 534} -setup {
|
||||
unset -nocomplain v
|
||||
} -body {
|
||||
# check integer hash is equal string hash for values from [$i-5 .. $i+5]:
|
||||
foreach i {
|
||||
0
|
||||
0x55555555 0xaaaaaaaa 0x7fffffff 0xffffffff
|
||||
0x5555555555555555 0xaaaaaaaaaaaaaaaa 0x7fffffffffffffff 0xffffffffffffffff
|
||||
0x7fffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff
|
||||
} {
|
||||
# not canonical int's (positive / negative):
|
||||
expr {$i}; # make int
|
||||
set v($i) 1; set v([string trim "$i "]); unset v($i)
|
||||
set v([string trim "$i "]) 2; unset v($i)
|
||||
set j -$i
|
||||
expr {$j}; # make int
|
||||
set v($j) 1; set v([string trim "$j "]); unset v($j)
|
||||
set v([string trim "$j "]) 2; unset v($j)
|
||||
# canonical int form (positive / negative):
|
||||
set i [expr {$i - 5}]
|
||||
time {
|
||||
set v([incr i]) 1; set v([string trim "$i "]); unset v($i)
|
||||
set v([string trim "$i "]) 2; incr i; incr i -1; unset v($i)
|
||||
set j [expr {-$i}]
|
||||
set v([incr j]) 1; set v([string trim "$j "]); unset v($j)
|
||||
set v([string trim "$j "]) 2; incr j; incr j -1; unset v($j)
|
||||
} 10
|
||||
}
|
||||
array size v
|
||||
} -cleanup {
|
||||
unset -nocomplain v
|
||||
} -result 0
|
||||
|
||||
catch {namespace delete ns}
|
||||
catch {unset arr}
|
||||
|
||||
@@ -1,920 +0,0 @@
|
||||
#! /bin/bash
|
||||
# Generated by configure.
|
||||
# Run this file to recreate the current configuration.
|
||||
# Compiler output produced by configure, useful for debugging
|
||||
# configure, is in config.log if it exists.
|
||||
|
||||
debug=false
|
||||
ac_cs_recheck=false
|
||||
ac_cs_silent=false
|
||||
SHELL=${CONFIG_SHELL-/bin/bash}
|
||||
## --------------------- ##
|
||||
## M4sh Initialization. ##
|
||||
## --------------------- ##
|
||||
|
||||
# Be Bourne compatible
|
||||
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
|
||||
emulate sh
|
||||
NULLCMD=:
|
||||
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
|
||||
# is contrary to our usage. Disable this feature.
|
||||
alias -g '${1+"$@"}'='"$@"'
|
||||
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
|
||||
set -o posix
|
||||
fi
|
||||
DUALCASE=1; export DUALCASE # for MKS sh
|
||||
|
||||
# Support unset when possible.
|
||||
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
|
||||
as_unset=unset
|
||||
else
|
||||
as_unset=false
|
||||
fi
|
||||
|
||||
|
||||
# Work around bugs in pre-3.0 UWIN ksh.
|
||||
$as_unset ENV MAIL MAILPATH
|
||||
PS1='$ '
|
||||
PS2='> '
|
||||
PS4='+ '
|
||||
|
||||
# NLS nuisances.
|
||||
for as_var in \
|
||||
LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
|
||||
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
|
||||
LC_TELEPHONE LC_TIME
|
||||
do
|
||||
if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
|
||||
eval $as_var=C; export $as_var
|
||||
else
|
||||
$as_unset $as_var
|
||||
fi
|
||||
done
|
||||
|
||||
# Required to use basename.
|
||||
if expr a : '\(a\)' >/dev/null 2>&1; then
|
||||
as_expr=expr
|
||||
else
|
||||
as_expr=false
|
||||
fi
|
||||
|
||||
if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
|
||||
as_basename=basename
|
||||
else
|
||||
as_basename=false
|
||||
fi
|
||||
|
||||
|
||||
# Name of the executable.
|
||||
as_me=`$as_basename "$0" ||
|
||||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
|
||||
X"$0" : 'X\(//\)$' \| \
|
||||
X"$0" : 'X\(/\)$' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X/"$0" |
|
||||
sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
|
||||
/^X\/\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\/\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
|
||||
|
||||
# PATH needs CR, and LINENO needs CR and PATH.
|
||||
# Avoid depending upon Character Ranges.
|
||||
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
|
||||
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
|
||||
as_cr_digits='0123456789'
|
||||
as_cr_alnum=$as_cr_Letters$as_cr_digits
|
||||
|
||||
# The user is always right.
|
||||
if test "${PATH_SEPARATOR+set}" != set; then
|
||||
echo "#! /bin/sh" >conf$$.sh
|
||||
echo "exit 0" >>conf$$.sh
|
||||
chmod +x conf$$.sh
|
||||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
|
||||
PATH_SEPARATOR=';'
|
||||
else
|
||||
PATH_SEPARATOR=:
|
||||
fi
|
||||
rm -f conf$$.sh
|
||||
fi
|
||||
|
||||
|
||||
as_lineno_1=103
|
||||
as_lineno_2=104
|
||||
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
|
||||
test "x$as_lineno_1" != "x$as_lineno_2" &&
|
||||
test "x$as_lineno_3" = "x$as_lineno_2" || {
|
||||
# Find who we are. Look in the path if we contain no path at all
|
||||
# relative or not.
|
||||
case $0 in
|
||||
*[\\/]* ) as_myself=$0 ;;
|
||||
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
|
||||
done
|
||||
|
||||
;;
|
||||
esac
|
||||
# We did not find ourselves, most probably we were run as `sh COMMAND'
|
||||
# in which case we are not to be found in the path.
|
||||
if test "x$as_myself" = x; then
|
||||
as_myself=$0
|
||||
fi
|
||||
if test ! -f "$as_myself"; then
|
||||
{ { echo "$as_me:128: error: cannot find myself; rerun with an absolute path" >&5
|
||||
echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
case $CONFIG_SHELL in
|
||||
'')
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for as_base in sh bash ksh sh5; do
|
||||
case $as_dir in
|
||||
/*)
|
||||
if ("$as_dir/$as_base" -c '
|
||||
as_lineno_1=143
|
||||
as_lineno_2=144
|
||||
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
|
||||
test "x$as_lineno_1" != "x$as_lineno_2" &&
|
||||
test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
|
||||
$as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
|
||||
$as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
|
||||
CONFIG_SHELL=$as_dir/$as_base
|
||||
export CONFIG_SHELL
|
||||
exec "$CONFIG_SHELL" "$0" ${1+"$@"}
|
||||
fi;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
# Create $as_me.lineno as a copy of $as_myself, but with 160
|
||||
# uniformly replaced by the line number. The first 'sed' inserts a
|
||||
# line-number line before each line; the second 'sed' does the real
|
||||
# work. The second script uses 'N' to pair each line-number line
|
||||
# with the numbered line, and appends trailing '-' during
|
||||
# substitution so that 165 is not a special case at line end.
|
||||
# (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
|
||||
# second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
|
||||
sed '=' <$as_myself |
|
||||
sed '
|
||||
N
|
||||
s,$,-,
|
||||
: loop
|
||||
s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
|
||||
t loop
|
||||
s,-$,,
|
||||
s,^['$as_cr_digits']*\n,,
|
||||
' >$as_me.lineno &&
|
||||
chmod +x $as_me.lineno ||
|
||||
{ { echo "$as_me:179: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
|
||||
echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
# Don't try to exec as it changes $[0], causing all sort of problems
|
||||
# (the dirname of $[0] is not the place where we might find the
|
||||
# original and so on. Autoconf is especially sensible to this).
|
||||
. ./$as_me.lineno
|
||||
# Exit status is that of the last command.
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ECHO_T=' ' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
|
||||
esac
|
||||
|
||||
if expr a : '\(a\)' >/dev/null 2>&1; then
|
||||
as_expr=expr
|
||||
else
|
||||
as_expr=false
|
||||
fi
|
||||
|
||||
rm -f conf$$ conf$$.exe conf$$.file
|
||||
echo >conf$$.file
|
||||
if ln -s conf$$.file conf$$ 2>/dev/null; then
|
||||
# We could just check for DJGPP; but this test a) works b) is more generic
|
||||
# and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
|
||||
if test -f conf$$.exe; then
|
||||
# Don't use ln at all; we don't have any links
|
||||
as_ln_s='cp -p'
|
||||
else
|
||||
as_ln_s='ln -s'
|
||||
fi
|
||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||
as_ln_s=ln
|
||||
else
|
||||
as_ln_s='cp -p'
|
||||
fi
|
||||
rm -f conf$$ conf$$.exe conf$$.file
|
||||
|
||||
if mkdir -p . 2>/dev/null; then
|
||||
as_mkdir_p=:
|
||||
else
|
||||
test -d ./-p && rmdir ./-p
|
||||
as_mkdir_p=false
|
||||
fi
|
||||
|
||||
as_executable_p="test -f"
|
||||
|
||||
# Sed expression to map a string onto a valid CPP name.
|
||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||
|
||||
# Sed expression to map a string onto a valid variable name.
|
||||
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
|
||||
|
||||
|
||||
# IFS
|
||||
# We need space, tab and new line, in precisely that order.
|
||||
as_nl='
|
||||
'
|
||||
IFS=" $as_nl"
|
||||
|
||||
# CDPATH.
|
||||
$as_unset CDPATH
|
||||
|
||||
exec 6>&1
|
||||
|
||||
# Open the log real soon, to keep \$[0] and so on meaningful, and to
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling. Logging --version etc. is OK.
|
||||
exec 5>>config.log
|
||||
{
|
||||
echo
|
||||
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
||||
## Running $as_me. ##
|
||||
_ASBOX
|
||||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by tcl $as_me 8.6, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||
CONFIG_LINKS = $CONFIG_LINKS
|
||||
CONFIG_COMMANDS = $CONFIG_COMMANDS
|
||||
$ $0 $@
|
||||
|
||||
_CSEOF
|
||||
echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
|
||||
echo >&5
|
||||
config_files=" Makefile:../unix/Makefile.in dltest/Makefile:../unix/dltest/Makefile.in tclConfig.sh:../unix/tclConfig.sh.in tcl.pc:../unix/tcl.pc.in"
|
||||
|
||||
ac_cs_usage="\
|
||||
\`$as_me' instantiates files from templates according to the
|
||||
current configuration.
|
||||
|
||||
Usage: $0 [OPTIONS] [FILE]...
|
||||
|
||||
-h, --help print this help, then exit
|
||||
-V, --version print version number, then exit
|
||||
-q, --quiet do not print progress messages
|
||||
-d, --debug don't remove temporary files
|
||||
--recheck update $as_me by reconfiguring in the same conditions
|
||||
--file=FILE[:TEMPLATE]
|
||||
instantiate the configuration file FILE
|
||||
|
||||
Configuration files:
|
||||
$config_files
|
||||
|
||||
Configuration commands:
|
||||
$config_commands
|
||||
|
||||
Report bugs to <bug-autoconf@gnu.org>."
|
||||
ac_cs_version="\
|
||||
tcl config.status 8.6
|
||||
configured by ./configure, generated by GNU Autoconf 2.59,
|
||||
with options \"'--prefix=/home/jima/space/ins/lin64/dynamic/main'\"
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
This config.status script is free software; the Free Software Foundation
|
||||
gives unlimited permission to copy, distribute and modify it."
|
||||
srcdir=/home/jima/space/bui/lin64/dynamic/main/tcl/unix
|
||||
# If no file are specified by the user, then we need to provide default
|
||||
# value. By we need to know if files were specified by the user.
|
||||
ac_need_defaults=:
|
||||
while test $# != 0
|
||||
do
|
||||
case $1 in
|
||||
--*=*)
|
||||
ac_option=`expr "x$1" : 'x\([^=]*\)='`
|
||||
ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
|
||||
ac_shift=:
|
||||
;;
|
||||
-*)
|
||||
ac_option=$1
|
||||
ac_optarg=$2
|
||||
ac_shift=shift
|
||||
;;
|
||||
*) # This is not an option, so the user has probably given explicit
|
||||
# arguments.
|
||||
ac_option=$1
|
||||
ac_need_defaults=false;;
|
||||
esac
|
||||
|
||||
case $ac_option in
|
||||
# Handling of the options.
|
||||
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
|
||||
ac_cs_recheck=: ;;
|
||||
--version | --vers* | -V )
|
||||
echo "$ac_cs_version"; exit 0 ;;
|
||||
--he | --h)
|
||||
# Conflict between --help and --header
|
||||
{ { echo "$as_me:336: error: ambiguous option: $1
|
||||
Try \`$0 --help' for more information." >&5
|
||||
echo "$as_me: error: ambiguous option: $1
|
||||
Try \`$0 --help' for more information." >&2;}
|
||||
{ (exit 1); exit 1; }; };;
|
||||
--help | --hel | -h )
|
||||
echo "$ac_cs_usage"; exit 0 ;;
|
||||
--debug | --d* | -d )
|
||||
debug=: ;;
|
||||
--file | --fil | --fi | --f )
|
||||
$ac_shift
|
||||
CONFIG_FILES="$CONFIG_FILES $ac_optarg"
|
||||
ac_need_defaults=false;;
|
||||
--header | --heade | --head | --hea )
|
||||
$ac_shift
|
||||
CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
|
||||
ac_need_defaults=false;;
|
||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||||
| -silent | --silent | --silen | --sile | --sil | --si | --s)
|
||||
ac_cs_silent=: ;;
|
||||
|
||||
# This is an error.
|
||||
-*) { { echo "$as_me:358: error: unrecognized option: $1
|
||||
Try \`$0 --help' for more information." >&5
|
||||
echo "$as_me: error: unrecognized option: $1
|
||||
Try \`$0 --help' for more information." >&2;}
|
||||
{ (exit 1); exit 1; }; } ;;
|
||||
|
||||
*) ac_config_targets="$ac_config_targets $1" ;;
|
||||
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
ac_configure_extra_args=
|
||||
|
||||
if $ac_cs_silent; then
|
||||
exec 6>/dev/null
|
||||
ac_configure_extra_args="$ac_configure_extra_args --silent"
|
||||
fi
|
||||
|
||||
if $ac_cs_recheck; then
|
||||
echo "running /bin/bash ./configure " '--prefix=/home/jima/space/ins/lin64/dynamic/main' $ac_configure_extra_args " --no-create --no-recursion" >&6
|
||||
exec /bin/bash ./configure '--prefix=/home/jima/space/ins/lin64/dynamic/main' $ac_configure_extra_args --no-create --no-recursion
|
||||
fi
|
||||
|
||||
#
|
||||
# INIT-COMMANDS section.
|
||||
#
|
||||
|
||||
VERSION=8.6
|
||||
|
||||
for ac_config_target in $ac_config_targets
|
||||
do
|
||||
case "$ac_config_target" in
|
||||
# Handling of arguments.
|
||||
"Tcl-Info.plist" ) CONFIG_FILES="$CONFIG_FILES Tcl-Info.plist:../macosx/Tcl-Info.plist.in" ;;
|
||||
"Tclsh-Info.plist" ) CONFIG_FILES="$CONFIG_FILES Tclsh-Info.plist:../macosx/Tclsh-Info.plist.in" ;;
|
||||
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile:../unix/Makefile.in" ;;
|
||||
"dltest/Makefile" ) CONFIG_FILES="$CONFIG_FILES dltest/Makefile:../unix/dltest/Makefile.in" ;;
|
||||
"tclConfig.sh" ) CONFIG_FILES="$CONFIG_FILES tclConfig.sh:../unix/tclConfig.sh.in" ;;
|
||||
"tcl.pc" ) CONFIG_FILES="$CONFIG_FILES tcl.pc:../unix/tcl.pc.in" ;;
|
||||
"Tcl.framework" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Tcl.framework" ;;
|
||||
*) { { echo "$as_me:399: error: invalid argument: $ac_config_target" >&5
|
||||
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
|
||||
{ (exit 1); exit 1; }; };;
|
||||
esac
|
||||
done
|
||||
|
||||
# If the user did not use the arguments to specify the items to instantiate,
|
||||
# then the envvar interface is used. Set only those that are not.
|
||||
# We use the long form for the default assignment because of an extremely
|
||||
# bizarre bug on SunOS 4.1.3.
|
||||
if $ac_need_defaults; then
|
||||
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
|
||||
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
|
||||
fi
|
||||
|
||||
# Have a temporary directory for convenience. Make it in the build tree
|
||||
# simply because there is no reason to put it here, and in addition,
|
||||
# creating and moving files from /tmp can sometimes cause problems.
|
||||
# Create a temporary directory, and hook for its removal unless debugging.
|
||||
$debug ||
|
||||
{
|
||||
trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
|
||||
trap '{ (exit 1); exit 1; }' 1 2 13 15
|
||||
}
|
||||
|
||||
# Create a (secure) tmp directory for tmp files.
|
||||
|
||||
{
|
||||
tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
|
||||
test -n "$tmp" && test -d "$tmp"
|
||||
} ||
|
||||
{
|
||||
tmp=./confstat$$-$RANDOM
|
||||
(umask 077 && mkdir $tmp)
|
||||
} ||
|
||||
{
|
||||
echo "$me: cannot create a temporary directory in ." >&2
|
||||
{ (exit 1); exit 1; }
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# CONFIG_FILES section.
|
||||
#
|
||||
|
||||
# No need to generate the scripts if there are no CONFIG_FILES.
|
||||
# This happens for instance when ./config.status config.h
|
||||
if test -n "$CONFIG_FILES"; then
|
||||
# Protect against being on the right side of a sed subst in config.status.
|
||||
sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
|
||||
s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
|
||||
s,@SHELL@,/bin/bash,;t t
|
||||
s,@PATH_SEPARATOR@,:,;t t
|
||||
s,@PACKAGE_NAME@,tcl,;t t
|
||||
s,@PACKAGE_TARNAME@,tcl,;t t
|
||||
s,@PACKAGE_VERSION@,8.6,;t t
|
||||
s,@PACKAGE_STRING@,tcl 8.6,;t t
|
||||
s,@PACKAGE_BUGREPORT@,,;t t
|
||||
s,@exec_prefix@,/home/jima/space/ins/lin64/dynamic/main,;t t
|
||||
s,@prefix@,/home/jima/space/ins/lin64/dynamic/main,;t t
|
||||
s,@program_transform_name@,s,x,x,,;t t
|
||||
s,@bindir@,${exec_prefix}/bin,;t t
|
||||
s,@sbindir@,${exec_prefix}/sbin,;t t
|
||||
s,@libexecdir@,${exec_prefix}/libexec,;t t
|
||||
s,@datadir@,${prefix}/share,;t t
|
||||
s,@sysconfdir@,${prefix}/etc,;t t
|
||||
s,@sharedstatedir@,${prefix}/com,;t t
|
||||
s,@localstatedir@,${prefix}/var,;t t
|
||||
s,@libdir@,/home/jima/space/ins/lin64/dynamic/main/lib,;t t
|
||||
s,@includedir@,${prefix}/include,;t t
|
||||
s,@oldincludedir@,/usr/include,;t t
|
||||
s,@infodir@,${prefix}/info,;t t
|
||||
s,@mandir@,${prefix}/man,;t t
|
||||
s,@build_alias@,,;t t
|
||||
s,@host_alias@,,;t t
|
||||
s,@target_alias@,,;t t
|
||||
s,@DEFS@,-DPACKAGE_NAME=\"tcl\" -DPACKAGE_TARNAME=\"tcl\" -DPACKAGE_VERSION=\"8.6\" -DPACKAGE_STRING=\"tcl\ 8.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DTCL_THREADS=1 -DTCL_CFGVAL_ENCODING=\"iso8859-1\" -DHAVE_ZLIB=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -DTCL_SHLIB_EXT=\".so\" -DNDEBUG=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_TOMMATH=1 -DMP_PREC=4 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DHAVE_GETCWD=1 -DHAVE_MKSTEMP=1 -DHAVE_OPENDIR=1 -DHAVE_STRTOL=1 -DHAVE_WAITPID=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GETADDRINFO=1 -DHAVE_FREEADDRINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_STRUCT_ADDRINFO=1 -DHAVE_STRUCT_IN6_ADDR=1 -DHAVE_STRUCT_SOCKADDR_IN6=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_GETPWUID_R_5=1 -DHAVE_GETPWUID_R=1 -DHAVE_GETPWNAM_R_5=1 -DHAVE_GETPWNAM_R=1 -DHAVE_GETGRGID_R_5=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETGRNAM_R_5=1 -DHAVE_GETGRNAM_R=1 -DHAVE_GETHOSTBYNAME_R_6=1 -DHAVE_GETHOSTBYNAME_R=1 -DHAVE_GETHOSTBYADDR_R_8=1 -DHAVE_GETHOSTBYADDR_R=1 -DHAVE_TERMIOS_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_MKTIME=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_BLKCNT_T=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DNO_UNION_WAIT=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DHAVE_MKSTEMPS=1 -DHAVE_FTS=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_UNLOAD_DLLS=1 -DHAVE_CPUID=1 ,;t t
|
||||
s,@ECHO_C@,,;t t
|
||||
s,@ECHO_N@,-n,;t t
|
||||
s,@ECHO_T@,,;t t
|
||||
s,@LIBS@,-lz -lpthread,;t t
|
||||
s,@MAN_FLAGS@,,;t t
|
||||
s,@CC@,gcc,;t t
|
||||
s,@CFLAGS@, -pipe ,;t t
|
||||
s,@LDFLAGS@, -Wl,--export-dynamic ,;t t
|
||||
s,@CPPFLAGS@,,;t t
|
||||
s,@ac_ct_CC@,gcc,;t t
|
||||
s,@EXEEXT@,,;t t
|
||||
s,@OBJEXT@,o,;t t
|
||||
s,@CPP@,gcc -E,;t t
|
||||
s,@EGREP@,grep -E,;t t
|
||||
s,@TCL_THREADS@,1,;t t
|
||||
s,@TCLSH_PROG@,/home/jima/space/ins/lin64/dynamic/main/bin/tclsh8.6,;t t
|
||||
s,@ZLIB_OBJS@,,;t t
|
||||
s,@ZLIB_SRCS@,,;t t
|
||||
s,@ZLIB_INCLUDE@,,;t t
|
||||
s,@RANLIB@,ranlib,;t t
|
||||
s,@ac_ct_RANLIB@,ranlib,;t t
|
||||
s,@AR@,ar,;t t
|
||||
s,@ac_ct_AR@,ar,;t t
|
||||
s,@LIBOBJS@,,;t t
|
||||
s,@TCL_LIBS@,-ldl -lz -lpthread -lieee -lm,;t t
|
||||
s,@DL_LIBS@,-ldl,;t t
|
||||
s,@DL_OBJS@,tclLoadDl.o,;t t
|
||||
s,@PLAT_OBJS@,,;t t
|
||||
s,@PLAT_SRCS@,,;t t
|
||||
s,@LDAIX_SRC@,,;t t
|
||||
s,@CFLAGS_DEBUG@,-g,;t t
|
||||
s,@CFLAGS_OPTIMIZE@,-O2,;t t
|
||||
s,@CFLAGS_WARNING@,-Wall,;t t
|
||||
s,@LDFLAGS_DEBUG@,,;t t
|
||||
s,@LDFLAGS_OPTIMIZE@,,;t t
|
||||
s,@CC_SEARCH_FLAGS@,-Wl,-rpath,${LIB_RUNTIME_DIR},;t t
|
||||
s,@LD_SEARCH_FLAGS@,-Wl,-rpath,${LIB_RUNTIME_DIR},;t t
|
||||
s,@STLIB_LD@,${AR} cr,;t t
|
||||
s,@SHLIB_LD@,${CC} ${CFLAGS} ${LDFLAGS} -shared,;t t
|
||||
s,@TCL_SHLIB_LD_EXTRAS@,,;t t
|
||||
s,@TK_SHLIB_LD_EXTRAS@,,;t t
|
||||
s,@SHLIB_LD_LIBS@,${LIBS},;t t
|
||||
s,@SHLIB_CFLAGS@,-fPIC,;t t
|
||||
s,@SHLIB_SUFFIX@,.so,;t t
|
||||
s,@MAKE_LIB@,${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS},;t t
|
||||
s,@MAKE_STUB_LIB@,${STLIB_LD} $@ ${STUB_LIB_OBJS} ; ${RANLIB} $@,;t t
|
||||
s,@INSTALL_LIB@,$(INSTALL_LIBRARY) $(LIB_FILE) "$(LIB_INSTALL_DIR)/$(LIB_FILE)",;t t
|
||||
s,@DLL_INSTALL_DIR@,$(LIB_INSTALL_DIR),;t t
|
||||
s,@INSTALL_STUB_LIB@,$(INSTALL_LIBRARY) $(STUB_LIB_FILE) "$(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)",;t t
|
||||
s,@CFLAGS_DEFAULT@,$(CFLAGS_OPTIMIZE),;t t
|
||||
s,@LDFLAGS_DEFAULT@,$(LDFLAGS_OPTIMIZE),;t t
|
||||
s,@DTRACE@,,;t t
|
||||
s,@TCL_VERSION@,8.6,;t t
|
||||
s,@TCL_MAJOR_VERSION@,8,;t t
|
||||
s,@TCL_MINOR_VERSION@,6,;t t
|
||||
s,@TCL_PATCH_LEVEL@,.8,;t t
|
||||
s,@TCL_YEAR@,,;t t
|
||||
s,@PKG_CFG_ARGS@,'--prefix=/home/jima/space/ins/lin64/dynamic/main' ,;t t
|
||||
s,@TCL_LIB_FILE@,libtcl8.6.so,;t t
|
||||
s,@TCL_LIB_FLAG@,-ltcl8.6,;t t
|
||||
s,@TCL_LIB_SPEC@,-L/home/jima/space/ins/lin64/dynamic/main/lib -ltcl8.6,;t t
|
||||
s,@TCL_STUB_LIB_FILE@,libtclstub8.6.a,;t t
|
||||
s,@TCL_STUB_LIB_FLAG@,-ltclstub8.6,;t t
|
||||
s,@TCL_STUB_LIB_SPEC@,-L/home/jima/space/ins/lin64/dynamic/main/lib -ltclstub8.6,;t t
|
||||
s,@TCL_STUB_LIB_PATH@,/home/jima/space/ins/lin64/dynamic/main/lib/libtclstub8.6.a,;t t
|
||||
s,@TCL_INCLUDE_SPEC@,-I/home/jima/space/ins/lin64/dynamic/main/include,;t t
|
||||
s,@TCL_BUILD_STUB_LIB_SPEC@,-L/home/jima/space/bui/lin64/dynamic/main/tcl/unix -ltclstub8.6,;t t
|
||||
s,@TCL_BUILD_STUB_LIB_PATH@,/home/jima/space/bui/lin64/dynamic/main/tcl/unix/libtclstub8.6.a,;t t
|
||||
s,@TCL_SRC_DIR@,/home/jima/space/bui/lin64/dynamic/main/tcl,;t t
|
||||
s,@CFG_TCL_SHARED_LIB_SUFFIX@,${VERSION}.so,;t t
|
||||
s,@CFG_TCL_UNSHARED_LIB_SUFFIX@,${VERSION}.a,;t t
|
||||
s,@TCL_SHARED_BUILD@,1,;t t
|
||||
s,@LD_LIBRARY_PATH_VAR@,LD_LIBRARY_PATH,;t t
|
||||
s,@TCL_BUILD_LIB_SPEC@,-L/home/jima/space/bui/lin64/dynamic/main/tcl/unix -ltcl8.6,;t t
|
||||
s,@TCL_LIB_VERSIONS_OK@,ok,;t t
|
||||
s,@TCL_SHARED_LIB_SUFFIX@,${VERSION}${SHLIB_SUFFIX},;t t
|
||||
s,@TCL_UNSHARED_LIB_SUFFIX@,${VERSION}.a,;t t
|
||||
s,@TCL_HAS_LONGLONG@,,;t t
|
||||
s,@INSTALL_TZDATA@,,;t t
|
||||
s,@DTRACE_SRC@,,;t t
|
||||
s,@DTRACE_HDR@,,;t t
|
||||
s,@DTRACE_OBJ@,,;t t
|
||||
s,@MAKEFILE_SHELL@,/bin/sh,;t t
|
||||
s,@BUILD_DLTEST@,$(DLTEST_TARGETS),;t t
|
||||
s,@TCL_PACKAGE_PATH@,/home/jima/space/ins/lin64/dynamic/main/lib ,;t t
|
||||
s,@TCL_MODULE_PATH@,,;t t
|
||||
s,@TCL_LIBRARY@,$(prefix)/lib/tcl$(VERSION),;t t
|
||||
s,@PRIVATE_INCLUDE_DIR@,$(includedir),;t t
|
||||
s,@HTML_DIR@,$(DISTDIR)/html,;t t
|
||||
s,@PACKAGE_DIR@,/home/jima/space/ins/lin64/dynamic/main/lib,;t t
|
||||
s,@EXTRA_CC_SWITCHES@,,;t t
|
||||
s,@EXTRA_APP_CC_SWITCHES@,,;t t
|
||||
s,@EXTRA_INSTALL@,,;t t
|
||||
s,@EXTRA_INSTALL_BINARIES@,@:,;t t
|
||||
s,@EXTRA_BUILD_HTML@,@:,;t t
|
||||
s,@EXTRA_TCLSH_LIBS@,,;t t
|
||||
s,@DLTEST_LD@,${SHLIB_LD},;t t
|
||||
s,@DLTEST_SUFFIX@,,;t t
|
||||
CEOF
|
||||
|
||||
# Split the substitutions into bite-sized pieces for seds with
|
||||
# small command number limits, like on Digital OSF/1 and HP-UX.
|
||||
ac_max_sed_lines=48
|
||||
ac_sed_frag=1 # Number of current file.
|
||||
ac_beg=1 # First line for current file.
|
||||
ac_end=$ac_max_sed_lines # Line after last line for current file.
|
||||
ac_more_lines=:
|
||||
ac_sed_cmds=
|
||||
while $ac_more_lines; do
|
||||
if test $ac_beg -gt 1; then
|
||||
sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
|
||||
else
|
||||
sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
|
||||
fi
|
||||
if test ! -s $tmp/subs.frag; then
|
||||
ac_more_lines=false
|
||||
else
|
||||
# The purpose of the label and of the branching condition is to
|
||||
# speed up the sed processing (if there are no `@' at all, there
|
||||
# is no need to browse any of the substitutions).
|
||||
# These are the two extra sed commands mentioned above.
|
||||
(echo ':t
|
||||
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
|
||||
else
|
||||
ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
|
||||
fi
|
||||
ac_sed_frag=`expr $ac_sed_frag + 1`
|
||||
ac_beg=$ac_end
|
||||
ac_end=`expr $ac_end + $ac_max_sed_lines`
|
||||
fi
|
||||
done
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds=cat
|
||||
fi
|
||||
fi # test -n "$CONFIG_FILES"
|
||||
|
||||
for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
|
||||
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
|
||||
case $ac_file in
|
||||
- | *:- | *:-:* ) # input from stdin
|
||||
cat >$tmp/stdin
|
||||
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
|
||||
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
|
||||
* ) ac_file_in=$ac_file.in ;;
|
||||
esac
|
||||
|
||||
# Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
|
||||
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
|
||||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$ac_file" : 'X\(//\)[^/]' \| \
|
||||
X"$ac_file" : 'X\(//\)$' \| \
|
||||
X"$ac_file" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$ac_file" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
{ if $as_mkdir_p; then
|
||||
mkdir -p "$ac_dir"
|
||||
else
|
||||
as_dir="$ac_dir"
|
||||
as_dirs=
|
||||
while test ! -d "$as_dir"; do
|
||||
as_dirs="$as_dir $as_dirs"
|
||||
as_dir=`(dirname "$as_dir") 2>/dev/null ||
|
||||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$as_dir" : 'X\(//\)[^/]' \| \
|
||||
X"$as_dir" : 'X\(//\)$' \| \
|
||||
X"$as_dir" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$as_dir" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
done
|
||||
test ! -n "$as_dirs" || mkdir $as_dirs
|
||||
fi || { { echo "$as_me:660: error: cannot create directory \"$ac_dir\"" >&5
|
||||
echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
|
||||
{ (exit 1); exit 1; }; }; }
|
||||
|
||||
ac_builddir=.
|
||||
|
||||
if test "$ac_dir" != .; then
|
||||
ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
|
||||
else
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
fi
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[\\/]* | ?:[\\/]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_dir_suffix;
|
||||
ac_top_srcdir=$srcdir ;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
if test x"$ac_file" != x-; then
|
||||
{ echo "$as_me:732: creating $ac_file" >&5
|
||||
echo "$as_me: creating $ac_file" >&6;}
|
||||
rm -f "$ac_file"
|
||||
fi
|
||||
# Let's still pretend it is `configure' which instantiates (i.e., don't
|
||||
# use $as_me), people would be surprised to read:
|
||||
# /* config.h. Generated by config.status. */
|
||||
if test x"$ac_file" = x-; then
|
||||
configure_input=
|
||||
else
|
||||
configure_input="$ac_file. "
|
||||
fi
|
||||
configure_input=$configure_input"Generated from `echo $ac_file_in |
|
||||
sed 's,.*/,,'` by configure."
|
||||
|
||||
# First look for the input files in the build tree, otherwise in the
|
||||
# src tree.
|
||||
ac_file_inputs=`IFS=:
|
||||
for f in $ac_file_in; do
|
||||
case $f in
|
||||
-) echo $tmp/stdin ;;
|
||||
[\\/$]*)
|
||||
# Absolute (can't be DOS-style, as IFS=:)
|
||||
test -f "$f" || { { echo "$as_me:755: error: cannot find input file: $f" >&5
|
||||
echo "$as_me: error: cannot find input file: $f" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
echo "$f";;
|
||||
*) # Relative
|
||||
if test -f "$f"; then
|
||||
# Build tree
|
||||
echo "$f"
|
||||
elif test -f "$srcdir/$f"; then
|
||||
# Source tree
|
||||
echo "$srcdir/$f"
|
||||
else
|
||||
# /dev/null tree
|
||||
{ { echo "$as_me:768: error: cannot find input file: $f" >&5
|
||||
echo "$as_me: error: cannot find input file: $f" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi;;
|
||||
esac
|
||||
done` || { (exit 1); exit 1; }
|
||||
sed "
|
||||
|
||||
:t
|
||||
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
|
||||
s,@configure_input@,$configure_input,;t t
|
||||
s,@srcdir@,$ac_srcdir,;t t
|
||||
s,@abs_srcdir@,$ac_abs_srcdir,;t t
|
||||
s,@top_srcdir@,$ac_top_srcdir,;t t
|
||||
s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
|
||||
s,@builddir@,$ac_builddir,;t t
|
||||
s,@abs_builddir@,$ac_abs_builddir,;t t
|
||||
s,@top_builddir@,$ac_top_builddir,;t t
|
||||
s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
|
||||
" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
|
||||
rm -f $tmp/stdin
|
||||
if test x"$ac_file" != x-; then
|
||||
mv $tmp/out $ac_file
|
||||
else
|
||||
cat $tmp/out
|
||||
rm -f $tmp/out
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
#
|
||||
# CONFIG_COMMANDS section.
|
||||
#
|
||||
for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
|
||||
ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
|
||||
ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
|
||||
$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$ac_dest" : 'X\(//\)[^/]' \| \
|
||||
X"$ac_dest" : 'X\(//\)$' \| \
|
||||
X"$ac_dest" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$ac_dest" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
{ if $as_mkdir_p; then
|
||||
mkdir -p "$ac_dir"
|
||||
else
|
||||
as_dir="$ac_dir"
|
||||
as_dirs=
|
||||
while test ! -d "$as_dir"; do
|
||||
as_dirs="$as_dir $as_dirs"
|
||||
as_dir=`(dirname "$as_dir") 2>/dev/null ||
|
||||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$as_dir" : 'X\(//\)[^/]' \| \
|
||||
X"$as_dir" : 'X\(//\)$' \| \
|
||||
X"$as_dir" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$as_dir" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
done
|
||||
test ! -n "$as_dirs" || mkdir $as_dirs
|
||||
fi || { { echo "$as_me:837: error: cannot create directory \"$ac_dir\"" >&5
|
||||
echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
|
||||
{ (exit 1); exit 1; }; }; }
|
||||
|
||||
ac_builddir=.
|
||||
|
||||
if test "$ac_dir" != .; then
|
||||
ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
|
||||
else
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
fi
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[\\/]* | ?:[\\/]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_dir_suffix;
|
||||
ac_top_srcdir=$srcdir ;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
|
||||
{ echo "$as_me:907: executing $ac_dest commands" >&5
|
||||
echo "$as_me: executing $ac_dest commands" >&6;}
|
||||
case $ac_dest in
|
||||
Tcl.framework ) n=Tcl &&
|
||||
f=$n.framework && v=Versions/$VERSION &&
|
||||
rm -rf $f && mkdir -p $f/$v/Resources &&
|
||||
ln -s $v/$n $v/Resources $f && ln -s ../../../$n $f/$v &&
|
||||
ln -s ../../../../$n-Info.plist $f/$v/Resources/Info.plist &&
|
||||
unset n f v
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
{ (exit 0); exit 0; }
|
||||
Reference in New Issue
Block a user