From: Aamer A. <aa...@ci...> - 2003-01-24 04:43:02
|
Hello, Firstly, thank you for having the prepackaged tcl distribution with many of the main packages for tcl. It works great! I looked a little bit through the archives, but couldn't find any case of somebody using swig with tcl on osx. Which is where my problem is, using the swing example.c: [aakhter-mac:mmpls/scripts/swig] aakhter% swig -tcl example.i [aakhter-mac:mmpls/scripts/swig] aakhter% gcc -I \ /Library/Frameworks/Tcl.framework/Headers/ -bundle -bundle_loader \ /usr/bin/tclsh *.c -o example.so ld: Undefined symbols: _TclFreeObj _Tcl_AppendElement _Tcl_AppendResult _Tcl_CreateObjCommand _Tcl_DeleteCommandFromToken _Tcl_DeleteHashEntry _Tcl_DuplicateObj _Tcl_GetCommandInfo _Tcl_GetDoubleFromObj _Tcl_GetIntFromObj _Tcl_GetObjResult _Tcl_GetStringFromObj _Tcl_GetStringResult _Tcl_InitHashTable _Tcl_NewDoubleObj _Tcl_NewIntObj _Tcl_NewStringObj _Tcl_ObjGetVar2 _Tcl_ObjSetVar2 _Tcl_PkgProvide _Tcl_SetObjResult _Tcl_SetResult _Tcl_SetVar _Tcl_SetVar2 _Tcl_TraceVar _Tcl_VarEval Obviously I'm missing the tcl C library, but shouldn=B9t this stuff be resolved later?=20 Ps. I've found these functions in /usr/lib/libtcl8.3.dylib, but 1) it's the wrong version of tcl, and 2) it seems wrong to pack these into the shared object when it's going to be loaded already with tclsh... Besides, it doesn't work: % load ./example.dylib dyld: tclsh malformed library: ./example.dylib (not a Mach-O library file, bad filetype value) Ideas? --=20 Aamer Akhter / aa...@ci... NSITE - cisco Systems |
From: Jim I. <ji...@ap...> - 2003-01-24 18:31:45
|
Aamer, First off, you always have to pass all the frameworks you use to=20 another bundle when it is being built. Just put -framework Tcl on your=20= link line and provided you put the Tcl.framework from the BI distro in=20= /Library/Frameworks, or ~/Library/Frameworks the linker will find it. Secondly, the Tcl load command loads dylib's, not bundles. There is a=20= discussion of the merits of loading bundles as opposed to loading=20 dylibs somewhere in the MacTcl Mailing list archives (middle of last=20 year some time, IIFC) if you are interested. So you -dynamiclib rather=20= than -bundle. Note that you wouldn't have needed -bundle_loader in any=20= case, since your extension wasn't getting any symbols from tclsh, it=20 was getting all its symbols from the Tcl framework. Hope this helps. Jim On Thursday, January 23, 2003, at 08:42 PM, Aamer Akhter wrote: > Hello, > > Firstly, thank you for having the prepackaged tcl distribution with=20 > many of > the main packages for tcl. It works great! > > I looked a little bit through the archives, but couldn't find any case=20= > of > somebody using swig with tcl on osx. > > Which is where my problem is, using the swing example.c: > > [aakhter-mac:mmpls/scripts/swig] aakhter% swig -tcl example.i > [aakhter-mac:mmpls/scripts/swig] aakhter% gcc -I \ > /Library/Frameworks/Tcl.framework/Headers/ -bundle -bundle_loader \ > /usr/bin/tclsh *.c -o example.so > > ld: Undefined symbols: > _TclFreeObj > _Tcl_AppendElement > _Tcl_AppendResult > _Tcl_CreateObjCommand > _Tcl_DeleteCommandFromToken > _Tcl_DeleteHashEntry > _Tcl_DuplicateObj > _Tcl_GetCommandInfo > _Tcl_GetDoubleFromObj > _Tcl_GetIntFromObj > _Tcl_GetObjResult > _Tcl_GetStringFromObj > _Tcl_GetStringResult > _Tcl_InitHashTable > _Tcl_NewDoubleObj > _Tcl_NewIntObj > _Tcl_NewStringObj > _Tcl_ObjGetVar2 > _Tcl_ObjSetVar2 > _Tcl_PkgProvide > _Tcl_SetObjResult > _Tcl_SetResult > _Tcl_SetVar > _Tcl_SetVar2 > _Tcl_TraceVar > _Tcl_VarEval > > Obviously I'm missing the tcl C library, but shouldn=92t this stuff be > resolved later? > > Ps. I've found these functions in /usr/lib/libtcl8.3.dylib, but 1)=20 > it's the > wrong version of tcl, and 2) it seems wrong to pack these into the=20 > shared > object when it's going to be loaded already with tclsh... > > Besides, it doesn't work: > > % load ./example.dylib > dyld: tclsh malformed library: ./example.dylib (not a Mach-O library=20= > file, > bad filetype value) > > Ideas? > --=20 > Aamer Akhter / aa...@ci... > NSITE - cisco Systems > > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Tcl-mac mailing list > Tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac > -- Jim Ingham ji...@ap... Developer Tools Apple Computer |
From: Aamer A. <aa...@ci...> - 2003-01-24 20:59:39
|
On 1/24/03 1:32 PM, "Jim Ingham" <ji...@ap...> wrote: > Aamer, >=20 > First off, you always have to pass all the frameworks you use to > another bundle when it is being built. Just put -framework Tcl on your > link line and provided you put the Tcl.framework from the BI distro in > /Library/Frameworks, or ~/Library/Frameworks the linker will find it. > Secondly, the Tcl load command loads dylib's, not bundles. There is a > discussion of the merits of loading bundles as opposed to loading > dylibs somewhere in the MacTcl Mailing list archives (middle of last > year some time, IIFC) if you are interested. So you -dynamiclib rather > than -bundle. Note that you wouldn't have needed -bundle_loader in any > case, since your extension wasn't getting any symbols from tclsh, it > was getting all its symbols from the Tcl framework. >=20 > Hope this helps. Thanks Jim! This works perfectly: swig -tcl example.i gcc -framework Tcl -dynamiclib *.c -o example.so I will search for the bundle discussion. Thanks again. >=20 > Jim >=20 > On Thursday, January 23, 2003, at 08:42 PM, Aamer Akhter wrote: >=20 >> Hello, >>=20 >> Firstly, thank you for having the prepackaged tcl distribution with >> many of >> the main packages for tcl. It works great! >>=20 >> I looked a little bit through the archives, but couldn't find any case >> of >> somebody using swig with tcl on osx. >>=20 >> Which is where my problem is, using the swing example.c: >>=20 >> [aakhter-mac:mmpls/scripts/swig] aakhter% swig -tcl example.i >> [aakhter-mac:mmpls/scripts/swig] aakhter% gcc -I \ >> /Library/Frameworks/Tcl.framework/Headers/ -bundle -bundle_loader \ >> /usr/bin/tclsh *.c -o example.so >>=20 >> ld: Undefined symbols: >> _TclFreeObj >> _Tcl_AppendElement >> _Tcl_AppendResult >> _Tcl_CreateObjCommand >> _Tcl_DeleteCommandFromToken >> _Tcl_DeleteHashEntry >> _Tcl_DuplicateObj >> _Tcl_GetCommandInfo >> _Tcl_GetDoubleFromObj >> _Tcl_GetIntFromObj >> _Tcl_GetObjResult >> _Tcl_GetStringFromObj >> _Tcl_GetStringResult >> _Tcl_InitHashTable >> _Tcl_NewDoubleObj >> _Tcl_NewIntObj >> _Tcl_NewStringObj >> _Tcl_ObjGetVar2 >> _Tcl_ObjSetVar2 >> _Tcl_PkgProvide >> _Tcl_SetObjResult >> _Tcl_SetResult >> _Tcl_SetVar >> _Tcl_SetVar2 >> _Tcl_TraceVar >> _Tcl_VarEval >>=20 >> Obviously I'm missing the tcl C library, but shouldn=B9t this stuff be >> resolved later? >>=20 >> Ps. I've found these functions in /usr/lib/libtcl8.3.dylib, but 1) >> it's the >> wrong version of tcl, and 2) it seems wrong to pack these into the >> shared >> object when it's going to be loaded already with tclsh... >>=20 >> Besides, it doesn't work: >>=20 >> % load ./example.dylib >> dyld: tclsh malformed library: ./example.dylib (not a Mach-O library >> file, >> bad filetype value) >>=20 >> Ideas? >> --=20 >> Aamer Akhter / aa...@ci... >> NSITE - cisco Systems >>=20 >>=20 >>=20 >>=20 >> ------------------------------------------------------- >> This SF.NET email is sponsored by: >> SourceForge Enterprise Edition + IBM + LinuxWorld Something 2 See! >> http://www.vasoftware.com >> _______________________________________________ >> Tcl-mac mailing list >> Tc...@li... >> https://lists.sourceforge.net/lists/listinfo/tcl-mac >>=20 > -- > Jim Ingham ji...@ap... > Developer Tools > Apple Computer >=20 >=20 >=20 > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Tcl-mac mailing list > Tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac --=20 Aamer Akhter / aa...@ci... NSITE - cisco Systems |
From: Dana R. <da...@tw...> - 2003-01-28 14:32:32
|
Hello all, I have been running into a problem trying to build snack. I am using the following: OSX 10.2.3 Tcl/Tk 8.4.1 (tried with and without BI installed) I downloaded Snack 2.2 and did the following: cd unix ./configure --with-tcl=/Library/Frameworks/Tcl.framework --with-tk=/Library/Frameworks/Tk.framework changed the following lines in the Makefile: TCL_INCPATH = /Library/Frameworks/Tcl.framework/Version/8.4/Headers TK_INCPATH = /Library/Frameworks/Tk.framework/Version/8.4/Headers make It builds for a while then I get a bunch of the following errors each ref a different line #: /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:237: illegal external declaration, missing `;' after `CONST84_RETURN' followed by a whole host of other errors. I edited tkDecls.h and added the ';' to each of the CONST84_RETURN instances but it didn't help as when I tried make again Followed by these errors each ref a different line #: /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: undefined type, found `CONST84_RETURN' /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: illegal member declaration, missing name, found `char' and some other errors such as ../generic/snack.c:255: request for member `tk_CreateItemType' in something not a structure or union Anyone have any ideas as to why it does not build. I have put the full output of the make up at: http://twc-inc.net/make.txt Thanks for any help or suggestions, Dana |
From: Bernard D. <bde...@ea...> - 2003-01-28 16:59:14
|
tcl.h has the following macros (around line 270): #ifdef USE_NON_CONST # ifdef USE_COMPAT_CONST # error define at most one of USE_NON_CONST and USE_COMPAT_CONST # endif # define CONST84 # define CONST84_RETURN #else # ifdef USE_COMPAT_CONST # define CONST84 # define CONST84_RETURN CONST # else # define CONST84 CONST # define CONST84_RETURN CONST # endif #endif Maybe should you try to play around with one of them: #define USE_NON_CONST or #define USE_COMPAT_CONST I don't have the source code of snack to try myself. Just a guess, Bernard > Hello all, > > I have been running into a problem trying to build snack. I am using > the following: > OSX 10.2.3 > Tcl/Tk 8.4.1 (tried with and without BI installed) > > I downloaded Snack 2.2 and did the following: > cd unix > ./configure --with-tcl=/Library/Frameworks/Tcl.framework > --with-tk=/Library/Frameworks/Tk.framework > changed the following lines in the Makefile: > TCL_INCPATH = /Library/Frameworks/Tcl.framework/Version/8.4/Headers > TK_INCPATH = /Library/Frameworks/Tk.framework/Version/8.4/Headers > make > > It builds for a while then I get a bunch of the following errors each > ref a different line #: > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:237: > illegal external declaration, missing `;' after `CONST84_RETURN' > followed by a whole host of other errors. > > I edited tkDecls.h and added the ';' to each of the CONST84_RETURN > instances but it didn't help as when I tried make again > > Followed by these errors each ref a different line #: > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: > undefined type, found `CONST84_RETURN' > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: > illegal member declaration, missing name, found `char' > and some other errors such as ../generic/snack.c:255: request for > member `tk_CreateItemType' in something not a structure or union > > Anyone have any ideas as to why it does not build. I have put the > full output of the make up at: http://twc-inc.net/make.txt > > Thanks for any help or suggestions, > Dana > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Tcl-mac mailing list > Tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac |
From: Vince D. <vi...@sa...> - 2003-01-28 17:05:43
|
This sounds as if you are mixing header files between 8.4 and 8.3 versions of tcl,tk. Make sure you're using only 8.4's headers. -- Vince <http://www.santafe.edu/~vince> On Tue, 28 Jan 2003, Bernard Desgraupes wrote: > > tcl.h has the following macros (around line 270): > #ifdef USE_NON_CONST > # ifdef USE_COMPAT_CONST > # error define at most one of USE_NON_CONST and USE_COMPAT_CONST > # endif > # define CONST84 > # define CONST84_RETURN > #else > # ifdef USE_COMPAT_CONST > # define CONST84 > # define CONST84_RETURN CONST > # else > # define CONST84 CONST > # define CONST84_RETURN CONST > # endif > #endif > > Maybe should you try to play around with one of them: #define > USE_NON_CONST or #define USE_COMPAT_CONST > > I don't have the source code of snack to try myself. > > Just a guess, > > Bernard > > > Hello all, > > > > I have been running into a problem trying to build snack. I am using > > the following: > > OSX 10.2.3 > > Tcl/Tk 8.4.1 (tried with and without BI installed) > > > > I downloaded Snack 2.2 and did the following: > > cd unix > > ./configure --with-tcl=/Library/Frameworks/Tcl.framework > > --with-tk=/Library/Frameworks/Tk.framework > > changed the following lines in the Makefile: > > TCL_INCPATH = /Library/Frameworks/Tcl.framework/Version/8.4/Headers > > TK_INCPATH = /Library/Frameworks/Tk.framework/Version/8.4/Headers > > make > > > > It builds for a while then I get a bunch of the following errors each > > ref a different line #: > > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:237: > > illegal external declaration, missing `;' after `CONST84_RETURN' > > followed by a whole host of other errors. > > > > I edited tkDecls.h and added the ';' to each of the CONST84_RETURN > > instances but it didn't help as when I tried make again > > > > Followed by these errors each ref a different line #: > > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: > > undefined type, found `CONST84_RETURN' > > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:986: > > illegal member declaration, missing name, found `char' > > and some other errors such as ../generic/snack.c:255: request for > > member `tk_CreateItemType' in something not a structure or union > > > > Anyone have any ideas as to why it does not build. I have put the > > full output of the make up at: http://twc-inc.net/make.txt > > > > Thanks for any help or suggestions, > > Dana > > > > ------------------------------------------------------- > > This SF.NET email is sponsored by: > > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > > http://www.vasoftware.com > > _______________________________________________ > > Tcl-mac mailing list > > Tc...@li... > > https://lists.sourceforge.net/lists/listinfo/tcl-mac > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Tcl-mac mailing list > Tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac > |
From: Dana R. <da...@tw...> - 2003-01-29 02:19:07
|
Going on the thought that maybe there was some header mixing, tonight i deleted my entire Tcl and Tk installation (which i had compiled) and installed from TclTkAqua-8.4.1-Jaguar.dmg. I then tried to recompile snack with no luck. I then downloaded and installed TclTkAquaBI-8.4.1.0-Jaguar.dmg with the same results. Is Daniel Steffen still on the list? If so did you work on the snack port? I'm guessing you did seeing your name in the initial paths in the Makefile. Any comments? I then decided to followup on the other suggestion. I grepped tcl.h and the only reference to CONST84 in the whole file is the below line; typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, char *widgRec, int offset)); I check all around line 270 and my install does not have the below lines. Just to make sure we are talking about the same file the one I was working on is located at: /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tk.h Thanks for the suggestions, Dana >> >> tcl.h has the following macros (around line 270): >> #ifdef USE_NON_CONST >> # ifdef USE_COMPAT_CONST >> # error define at most one of USE_NON_CONST and USE_COMPAT_CONST >> # endif >> # define CONST84 >> # define CONST84_RETURN >> #else >> # ifdef USE_COMPAT_CONST >> # define CONST84 >> # define CONST84_RETURN CONST >> # else >> # define CONST84 CONST >> # define CONST84_RETURN CONST >> # endif >> #endif >> |
From: Jonathan G. <jg...@hi...> - 2003-01-29 02:40:50
|
At 9:17 PM -0500 1/28/03, Dana Rawding wrote: >I then decided to followup on the other suggestion. I grepped tcl.h >and the only reference to CONST84 in the whole file is the below >line; > >typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData, > Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, >char *widgRec, > int offset)); > >I check all around line 270 and my install does not have the below >lines. Just to make sure we are talking about the same file the one >I was working on is located at: >/Library/Frameworks/Tk.framework/Versions/8.4/Headers/tk.h ...um... that's tk.h, not tcl.h... -- Jonathan E. Guyer <http://www.his.com/jguyer/> |
From: Daniel A. S. <st...@ma...> - 2003-01-29 10:13:24
|
Dana, Kare, On Wednesday, Jan 29, 2003, at 01:30 Australia/Sydney, Dana Rawding wrote: > I have been running into a problem trying to build snack. I am using > the following: > OSX 10.2.3 > Tcl/Tk 8.4.1 (tried with and without BI installed) > > I downloaded Snack 2.2 and did the following: > cd unix > ./configure --with-tcl=/Library/Frameworks/Tcl.framework > --with-tk=/Library/Frameworks/Tk.framework > changed the following lines in the Makefile: > TCL_INCPATH = /Library/Frameworks/Tcl.framework/Version/8.4/Headers > TK_INCPATH = /Library/Frameworks/Tk.framework/Version/8.4/Headers > make > > It builds for a while then I get a bunch of the following errors each > ref a different line #: > /Library/Frameworks/Tk.framework/Versions/8.4/Headers/tkDecls.h:237: > illegal external declaration, missing `;' after `CONST84_RETURN' > followed by a whole host of other errors. <snip> > I have put the full output of the make up at: > http://twc-inc.net/make.txt these errors look like the 8.3 tcl.h in /usr/include is being picked up for some reason, but I don't understand how that could have happened from your make log. On Wednesday, Jan 29, 2003, at 13:17 Australia/Sydney, Dana Rawding wrote: > Is Daniel Steffen still on the list? If so did you work on the snack > port? I'm guessing you did seeing your name in the initial paths in > the Makefile. Any comments? I'm still here... but I haven't had anything to do with the snack OSX port, and I haven't had time to try to build snack myself until now. (BTW, the reason you see my name in the makefile is because these settings come from tclConfig.sh/tkConfig.sh) I think Kare did the OSX port himself, he sent me the following the other day: On Saturday, Jan 25, 2003, at 01:14 Australia/Sydney, Kare Sjolander wrote: > I've ported Snack to MacOS X and CoreAudio. Got my first iMac this > week, > amazing computer for somebody used to Linux like me... > I've updated the source release, no binaries yet until I figure out > how to > create installers, but there is a compiled library in the WaveSurfer > MacOS > X distribution at http://www.speech.kth.se/wavesurfer/download.html In any case, I've just successfully built snack against the current TclTk HEAD and haven't seen any of your problems, here snack builds just fine out of the box (however, I do have the tcltk source tree installed, that might make a difference), also the demos work very nicely... Great work, Kare! I did make some (backwards-compatible) changes to the buildsystem to make it more TEA like, and added a minor hack in jkAudIO.h to workaround a (non-fatal) conflict with precompiled headers, the patch is at http://rutherglen.ics.mq.edu.au/~steffen/tcltk/patches/snack.diff with this applied, you should also no longer need to edit the INCPATH vars in the Makefile after configure, even if you don't have the tcl/tk source tree installed. with these changes, Snack builds from my TclTkAqua BI buildsystem with a standard TEA configure line, FYI the updated BI makefile with snack support added is at http://rutherglen.ics.mq.edu.au/~steffen/tcltk/tools/GNUmakefile I've also built a Snack binary installer package (using the above Makefile) for people to test: http://rutherglen.ics.mq.edu.au/~steffen/tcltk/Snack2.2.tgz this doesn't include the demo or doc files, you'll have to get them Kare's source distro if you want them. Future versions of the installer could include those files, I welcome suggestions on where they should be installed, maybe inside the /Library/Tcl/snack2.2 folder? Given this very painless integration into my buildsystem, if Kare agrees, I now certainly plan to include Snack in the next release of the TclTkAqua BI distro (which will happen sometime in the tcltk core 8.4.2 release timeframe, i.e. mid to end Feb). Cheers, Daniel -- ** Daniel A. Steffen ** "And now to something completely ** Dept. of Mathematics ** different" Monty Python ** Macquarie University ** <mailto:st...@ma...> ** NSW 2109 Australia ** <http://www.maths.mq.edu.au/~steffen/> |
From: Dana R. <da...@tw...> - 2003-01-29 19:17:24
|
Thanks Daniel! I have downloaded the Snack binary installer package. I'll be trying it out later today. One last question, It seems that a number of people feel that my header files are messed up. I deleted everything in /Library/Frameworks/Tk.framework & Tcl.framework and then reinstalled. Is there some other place that I should be looking at? Thanks for all the help everyone, Dana |
From: Daniel A. S. <st...@ma...> - 2003-01-29 23:55:17
|
On Thursday, Jan 30, 2003, at 06:15 Australia/Sydney, Dana Rawding wrote: > One last question, It seems that a number of people feel that my > header files are messed up. I deleted everything in > /Library/Frameworks/Tk.framework & Tcl.framework and then reinstalled. > Is there some other place that I should be looking at? /usr/include and /usr/local/include /usr/include will have tcl.h vers 8.3.4 from the version of tcl that came with the OS Cheers, Daniel -- ** Daniel A. Steffen ** "And now to something completely ** Dept. of Mathematics ** different" Monty Python ** Macquarie University ** <mailto:st...@ma...> ** NSW 2109 Australia ** <http://www.maths.mq.edu.au/~steffen/> |