From: Kevan H. <ha...@br...> - 2008-02-27 15:52:07
|
Dear TCL-MAC, I base my application on stand-alone Wish. I'm moving over to TclTk 8.5.1. I compiled Wish with "make embedded". The stand-alone Wish.app comes with the Tcl and Tk frameworks, and a wish shell. But it does not appear to come with tclsh. I use tclsh to launch the no-gui version of my code. I bundle the Windows and Linux versions of tclsh and wish with my code, so I can run these bundled versions directly. But I can't figure out how to bundle tclsh with my code on MacOS. Not having tclsh bundled in my application has not been a problem until now, because tclsh8.4 is bundled with MacOS X. But now that I'm switching to Tcl 8.5.1, I'm having some trouble. My extensions now expect 8.5 libraries. So, is there any way I can compile tclsh8.5 and add it to my stand-alone wish.app? Yours, Kevan -- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/ |
From: Philip A. <phi...@sh...> - 2008-02-27 16:12:13
|
On 08-02-27, at 07:52, Kevan Hashemi wrote: > I base my application on stand-alone Wish. I'm moving over to TclTk > 8.5.1. I compiled Wish with "make embedded". The stand-alone > Wish.app comes with the Tcl and Tk frameworks, and a wish shell. But > it does not appear to come with tclsh. > I use tclsh to launch the no-gui version of my code. I bundle the > Windows and Linux versions of tclsh and wish with my code, so I can > run these bundled versions directly. But I can't figure out how to > bundle tclsh with my code on MacOS. > Not having tclsh bundled in my application has not been a problem > until now, because tclsh8.4 is bundled with MacOS X. But now that > I'm switching to Tcl 8.5.1, I'm having some trouble. My extensions > now expect 8.5 libraries. > So, is there any way I can compile tclsh8.5 and add it to my stand- > alone wish.app? I have done this with several other tools needed by applications. It's really a matter of what's most convenient for the tool to link to the correct libraries at runtime. For instance here tclsh can be put in any of the locations noted below and the standard INSTALL_PATH of "@executable_path/../Frameworks" is good. some.app Contents Frameworks Tcl.framework Tk.framework Library tclsh MacOS some tclsh Resources Documentation Scripts some.icns tclsh Tools tclsh If there are any problems, look at <x-man-page://dyld> for loading path options. Philip Aker echo astwta@lvpc.dslh@nl | tr a-z@. p-za-o.@ |
From: Kevan H. <ha...@br...> - 2008-02-27 16:41:47
|
Dear Philip, Thanks for your advice. > For instance here tclsh can be put in any of the locations noted below > and the standard INSTALL_PATH of "@executable_path/../Frameworks" is good. I compile tclsh8.5, but no matter what I do it always wants to load its libraries from the absolute path: When I set INSTALL_PATH="@executable_path/../Frameworks" before compiling with "make" or "make embedded", I get: configure: error: expected an absolute directory name for --libdir: @executable_path/../Frameworks When I set any of the dyld environment variables before calling tclsh8.5, hoping to point them to the correct directory, they have no effect. Yours, Kevan -- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/ |
From: François B. <Fra...@im...> - 2008-02-27 16:48:33
|
Kevan, I would build the "unix" tclsh (cd tcl8.5.1/unix) with "configure ... --disable-shared". This would build the static (.a) version of the tcl library, and link it with the main function of tclsh to produce a self-contained tclsh. François On Feb 27, 2008, at 10:52 AM, Kevan Hashemi wrote: > Dear TCL-MAC, > > I base my application on stand-alone Wish. I'm moving over to TclTk > 8.5.1. I compiled Wish with "make embedded". The stand-alone Wish.app > comes with the Tcl and Tk frameworks, and a wish shell. But it does > not > appear to come with tclsh. > > I use tclsh to launch the no-gui version of my code. I bundle the > Windows and Linux versions of tclsh and wish with my code, so I can > run > these bundled versions directly. But I can't figure out how to bundle > tclsh with my code on MacOS. > > Not having tclsh bundled in my application has not been a problem > until > now, because tclsh8.4 is bundled with MacOS X. But now that I'm > switching to Tcl 8.5.1, I'm having some trouble. My extensions now > expect 8.5 libraries. > > So, is there any way I can compile tclsh8.5 and add it to my stand- > alone > wish.app? > > Yours, Kevan > > > > -- > Kevan Hashemi, Electrical Engineer > Physics Department, Brandeis University > http://alignment.hep.brandeis.edu/ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Tcl-mac mailing list > tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac __________________________ François Bérard Visiting Researcher Centre for Intelligent Machines and Department of Electrical and Computer Engineering McGill University 3480 University Street, Room 435 Montreal, QC, H3A 2A7, Canada |
From: Kevan H. <ha...@br...> - 2008-02-27 22:27:40
|
Dear Francois, > I would build the "unix" tclsh (cd tcl8.5.1/unix) with "configure ... > --disable-shared". I build tclsh. It works in the tcl8.5.1/unix, but when I move it to the desktop, it complains: -------- dyn-129-64-227-76:~/Desktop kevan$ ./tclsh application-specific initialization failed: Can't find a usable init.tcl in the following directories: /usr/local/lib/tcl8.5 /Users/kevan/lib/tcl8.5 /Users/lib/tcl8.5 /Users/kevan/library /Users/library /Users/tcl8.5.1/library /tcl8.5.1/library This probably means that Tcl wasn't installed properly. % -------- I can't figure out which file it's looking for, which it finds in tcl8.5.1. There is no init.tcl file. Yours, Kevan -- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/ |
From: <ro...@cr...> - 2008-02-27 18:30:24
|
Using 8.4.15, I add menu commands similar to this: menu .m .m add cascade -label Help -menu .m.help menu .m.help .m.help add command -name "Retrieve Login & Password" -command xyz . configure -menu .m If I click on Help to drop down the menu, and then move the cursor over the command, then click the mouse and delay 3-5 seconds before releasing it, the applications hangs (beachball) around 50% of the time. I can reproduce it in several different menu commands. When I remove code having to do with geometry like 'wm geom .new ...', or update commands, or wm withdraw and later wm deiconify, it occurs less likely, but I can't get it to stop entirely. Does anyone have any idea what is going wrong? Thanks for any help. The same problem happens with my overwrite of the command for About-Tk, tkAboutDialog. Robert Karen |
From: Philip A. <phi...@sh...> - 2008-02-27 20:53:13
|
On 08-02-27, at 08:41, Kevan Hashemi wrote: >> For instance here tclsh can be put in any of the locations noted >> below and the standard INSTALL_PATH of "@executable_path/../ >> Frameworks" is good. > I compile tclsh8.5, but no matter what I do it always wants to load > its libraries from the absolute path: > When I set INSTALL_PATH="@executable_path/../Frameworks" before > compiling with "make" or "make embedded", I get: > configure: error: expected an absolute directory name for --libdir: > @executable_path/../Frameworks > When I set any of the dyld environment variables before calling > tclsh8.5, hoping to point them to the correct directory, they have > no effect. I see. I actually compile Tcl.framework from Xcode and INSTALL_PATH might only be meaningful in Xcode. But I believe the linker option is: -install_name @executable_path/../Frameworks/Tcl.framework/Versions/ 8.5/Tcl so it looks like Xcode is inserting the rest of the full path for me (checked with otool). If that doesn't work, try -headerpad_max_install_names and use <x-man-page://install_name_tool >. BTW, I haven't updated my framework for quite some time, although I don't expect these options to change, I'll try with the 8.5.1 source fairly soon and let you know how it goes. Philip Aker echo astwta@lvpc.dslh@nl | tr a-z@. p-za-o.@ |
From: Kevan H. <ha...@br...> - 2008-02-27 22:27:10
|
Dear Phillip, > If that doesn't work, try -headerpad_max_install_names and use > <x-man-page://install_name_tool>. This use of install_name_tool works: install_name_tool -change \ /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl \ @executable_path/../Frameworks/Tcl.framework/Versions/8.5/Tcl \ tclsh8.5 Although the new name is longer than the original, we still don't need to re-link tclsh8.5 because -headerpad_max_install is passed by the Makefile to the linker by default in the macosx build. Now I have tclsh that I can put in some.app/Contents/MacOS, and it loads the libraries in some.app/Contents/Frameworks. Thank you for your help. Yours, Kevan -- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/ |
From: Philip A. <phi...@sh...> - 2008-03-02 20:57:23
|
On 08-02-27, at 14:01, Kevan Hashemi wrote: >> I would build the "unix" tclsh (cd tcl8.5.1/unix) with >> "configure ... >> --disable-shared". > I build tclsh. It works in the tcl8.5.1/unix, but when I move it to > the desktop, it complains: > dyn-129-64-227-76:~/Desktop kevan$ ./tclsh > application-specific initialization failed: Can't find a usable > init.tcl > in the following directories: > /usr/local/lib/tcl8.5 /Users/kevan/lib/tcl8.5 /Users/lib/tcl8.5 > /Users/kevan/library /Users/library /Users/tcl8.5.1/library > /tcl8.5.1/library > This probably means that Tcl wasn't installed properly. > I can't figure out which file it's looking for, which it finds in > tcl8.5.1. There is no init.tcl file. Normally you would set the TCL_LIBRARY environment variable before Tcl_Init because the bad path is hardwired into the build but overridden by the environment variable. If you need something that supplies the correct path automatically, I've found that I only need to make a few changes in tclUnixInit.c and tclMacOSXBundle.c. Philip Aker echo astwta@lvpc.dslh@nl | tr a-z@. p-za-o.@ |