Tcl Source Code

View Ticket
Login
Ticket UUID: 947735
Title: TEA: better MacOSX defaults
Type: RFE Version: None
Submitter: dgp Created on: 2004-05-04 14:52:21
Subsystem: 85. tclconfig Assigned To: das
Priority: 6 Severity:
Status: Closed Last Modified: 2005-06-23 16:58:09
Resolution: Fixed Closed By: das
    Closed on: 2005-06-23 09:58:08
Description:
The default ./configure; make install
doesn't work on a MacOSX/Aqua install
of Tcl/Tk. 

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

configure --libdir=/Library/Tcl 

is one important step to a successful
TEA instal on Mac OSX.  The complete
set should be determined and made
the default on that platform.
User Comments: das added on 2005-06-23 16:58:09:

File Added - 139492: tclconfig.diff

das added on 2005-06-23 16:58:08:
Logged In: YES 
user_id=90580

the attached patch adds changes to tcl.m4 to better support framework 
builds of Tcl and Tk out of the box:
search framework install locations for *Config.sh, and if in presence of a 
framework build, use the framework's Headers and PrivateHeaders 
directories for public and private includes.

this means that a standard /configure; make of a TEA extension now 
works on Darwin with just Tcl.framework installed in one of the standard 
framework directories

committed the patch to tclconfig

das added on 2005-05-31 10:31:20:
Logged In: YES 
user_id=90580

Jeff,

TEA should still be smarter about the framework build of tcl/tk on OSX, i.e. 
it should look for t{cl,k}Config.,sh in /Library/Framework/T{cl,k}.framework 
if it is not found in /usr/lib etc,
also, when in presence of a framework build (i.e. *Config.sh inside a 
.framework) the include dirs should automatically be set to the .framework/
Headers dirs.

hobbs added on 2005-05-31 08:47:25:
Logged In: YES 
user_id=72656

I think this is out of date now ...

dgp added on 2004-12-16 13:21:16:
Logged In: YES 
user_id=80530

I think [load]-able Tk on Aqua
got done, so perhaps it's time
to look into this again?

dgp added on 2004-08-20 01:42:49:
Logged In: YES 
user_id=80530


Note to self:
Test how well TEA 3.1 resolves
this request.

das added on 2004-05-05 22:16:30:
Logged In: YES 
user_id=90580

a loadable Tk is not easily possible at present due to several 
technical issues, this has been discussed a number of times in 
detail on tcl-mac in the past. Some of these issues are in the 
current tk aqua startup code which could be fixed with some 
work, others are OS specific and might be fixed in a future 
release of the OS or could be worked around by us.
With a fair amount of work I suspect it would be possible to 
implement loadable Tk, but it hasn't been high on anybody's list 
of priorities...

dgp added on 2004-05-05 22:09:35:
Logged In: YES 
user_id=80530


Is it possible to have
[load]-able (that is,
[package require]-able)
Tk in tclsh on Mac OSX?

Or are we stuck on that
system to use wish for
Tk-using programs?

das added on 2004-05-05 09:38:40:
Logged In: YES 
user_id=90580

BTW, the reason the wish auto_path is not a superset of the tclsh 
auto_path is because these executables are necessarily located in different 
places in the filesystem, we cannot avoid that due to platform 
specificities.
because tcl init code derives part of the default auto_path from the 
location of the executable, these parts end up being different in tclsh and 
wish. The same thing happens on other platforms is you move tclsh and 
wish to different directories...

das added on 2004-05-05 09:35:21:
Logged In: YES 
user_id=90580

Don,

fully agree, I have been meaning to make TEA more MacOSX aware for a 
while, the main problem is finding the time to do the work...

currently you have to configure TEA on Mac OS X as follows for best 
results
./configure --libdir=/Library/Tcl \
            --with-tcl=/Library/Frameworks/Tcl.framework --with-
tclinclude=/Library/Frameworks/Tcl.framework/Headers \
            --with-tk=/Library/Frameworks/Tk.framework --with-
tkinclude=/Library/Frameworks/Tk.framework/Headers

certainly the "include" flags values could easily be derived by TEA from 
the locations of tcl and tk, and the frameworks locations should be 
additional places TEA checks for Tcl/Tk by default.

finding the correct value for libdir is more difficult, this is set on macosx 
by compiling with a value of TCL_PACKAGE_PATH that could potentially be 
different from build to build. /Library/Tcl is just the current default in tcl/
macosx/Makefile.
This is a problem on other platforms as well, probably the value of 
TCL_PACKAGE_PATH should be preserved in tclConfig.sh, or TEA could use 
tcl to get the value of tcl_pkgPath, not sure what the best solution is.

Attachments: