Gustaf Neumann wrote:
On Friday 17 September 2004 19:19, Catherine Letondal wrote:
Dear members of xotcl the list,
Has someone any experience in installing XOtcl on MacOsX ? I have found a "Portfile" but I don't know what to do with it?
Catherine,
isn't the Mac OS X Tcl/Tk Aqua 8.4.7 Release something for you to use, it contains XOTcl binaries.....
http://groups.google.at/groups?q=xotcl&hl=de&lr=&ie=UTF -8&scoring=d&selm=pgpmoose.200408041618.26617%40despot.non.net&rnum=8
Thanks for the advice!
I have indeed installed the TclTkAquaBI and tried but it'svery complicated. I don't know whether you can help ?
1) I need to build my own wish with shared objects (libtcl.dylib etc...) which are not provided in TclTkAquaBI distribution - even using it together with the native Tcl.framework you don't have the *.h files etc...). So I decided to use the Fink tcl/tk distribution which works fine.
2) Using the TclTkAquaBI (the one which includes xotcl-1.2) is also not easy when you want to link an xotcl shared object (called /Library/Tcl/xotcl1.2/libxotcl1.2.dylib) First, because you need xotcl.h, so you have to download separately the sources that have been used for building the shared library (sources are kindly distributed from http://tcltkaqua.sourceforge.net/8.4.7.html). Even using libxotcl.dylib file distributed in TclAquaBI not not make sense for a simple reason: if I need another package (such as BLT), which is not distributed in TclAquaBI, I will also have to compile it myself, which is very difficult when it is not configured for this purpose (blt is also distributed in Fink).
3) So, sy conclusion was to compile Xotcl myself, which I did, I think, successfully. configure; ./configure --with-tcl=/sw/lib --with-tclinclude=/sw/include --with-tk=/sw/lib --with-tkinclude=/sw/include
I just got errors when building xowish:
gcc -pipe -rdynamic -o xowish tkAppInit.o \ xotcl.o xotclError.o xotclMetaData.o xotclObjectData.o xotclProfile.o xotclTrace.o xotclUtil.o xotclShadow.o xotclCompile.o aolstub.o xotclStubInit.o \ -O3 -Wall -Wconversion -Wno-implicit-int -fno-common -L/sw/lib -ltcl8.4 \
gcc: unrecognized option `-rdynamic' ld: Undefined symbols: _Tk_Init _Tk_MainEx _Tk_SafeInit
Apparently also: ==> -ltk8.4 is missing ?
But xotclsh was successfully built.
4) then, I built a very simple tkAppinit.c:
#include "tk.h" #include <xotcl.h> int main(argc, argv) int argc; /* Number of command-line arguments. */ char **argv; /* Values of command-line arguments. */ { Tk_Main(argc, argv, Tcl_AppInit); return 0; /* Needed only to prevent compiler warning. */ }
int Tcl_AppInit(interp) Tcl_Interp *interp; /* Interpreter for application. */ { if (Tcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; } if (Tk_Init(interp) == TCL_ERROR) { return TCL_ERROR; } Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit); if (Xotcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; }
Tcl_Import(interp, Tcl_GetGlobalNamespace(interp), "xotcl::*", 1); if (Tcl_PkgRequire(interp, "XOTcl", XOTCLVERSION, 1) == NULL) { return TCL_ERROR; }
return TCL_OK; }
I got an executable (miniwish) built with the following compile/link commands (with some warnings):
gcc -fno-common -DXOTCLVERSION="1.3.1" -c -I/sw/include -I/sw/include -I/usr/include/X11 -I/sw/include tkAppInit.c gcc -bind_at_load -o minibiokwish tkAppInit.o -L/sw/lib -ltk8.4 -L/sw/lib -ltcl8.4 -L/usr/X11R6/lib -lX11 -lXmu -L/sw/lib/xotcl1.3.1 -lxotcl1.3.1 -lm ld: warning multiple definitions of symbol _tclPlatStubsPtr /sw/lib/libtcl8.4.dylib(tclStubLib.o) definition of _tclPlatStubsPtr /sw/lib/libtk8.4.dylib(tclStubLib.o) definition of _tclPlatStubsPtr ld: warning multiple definitions of symbol _tclIntStubsPtr /sw/lib/libtcl8.4.dylib(tclStubLib.o) definition of _tclIntStubsPtr /sw/lib/libtk8.4.dylib(tclStubLib.o) definition of _tclIntStubsPtr ld: warning multiple definitions of symbol _Tcl_InitStubs /sw/lib/libtcl8.4.dylib(tclStubLib.o) definition of _Tcl_InitStubs /sw/lib/libtk8.4.dylib(tclStubLib.o) definition of _Tcl_InitStubs ld: warning multiple definitions of symbol _tclIntPlatStubsPtr /sw/lib/libtcl8.4.dylib(tclStubLib.o) definition of _tclIntPlatStubsPtr /sw/lib/libtk8.4.dylib(tclStubLib.o) definition of _tclIntPlatStubsPtr ld: warning multiple definitions of symbol _tclStubsPtr /sw/lib/libtcl8.4.dylib(tclStubLib.o) definition of _tclStubsPtr /sw/lib/libtk8.4.dylib(tclStubLib.o) definition of _tclStubsPtr /sw/lib/xotcl1.3.1/libxotcl1.3.1.dylib(tclStubLib.o) definition of _tclPlatStubsPtr /sw/lib/xotcl1.3.1/libxotcl1.3.1.dylib(tclStubLib.o) definition of _tclIntStubsPtr /sw/lib/xotcl1.3.1/libxotcl1.3.1.dylib(tclStubLib.o) definition of _tclStubsPtr /sw/lib/xotcl1.3.1/libxotcl1.3.1.dylib(tclStubLib.o) definition of _tclIntPlatStubsPtr /sw/lib/xotcl1.3.1/libxotcl1.3.1.dylib(tclStubLib.o) definition of _Tcl_InitStubs
But this executable does not work correctly:
./minibiokwish dyld: ./minibiokwish can't open library: libxotcl1.3.1.dylib (No such file or directory, errno = 2) Trace/BPT trap
(executed from an X11 environment - not Aqua - of course).
-- Catherine Letondal -- Pasteur Institute Computing Center