Critcl2 was superseded by Critcl3 in 2011. See the Critcl page for updated information.
New features in Critcl2:
In addition, the compiler and platform specific commands are now stored in a configuration file. This will make it easier to support new platforms and toolchains. For example,
# Configuration file for the compiler toolchain # some defaults - you can override these in the platform specific section # but shouldn't need to for gcc or typical *nix toolchains compile gcc -c link gcc -shared preproc gcc -dM -E tclstubs -DUSE_TCL_STUBS tkstubs -DUSE_TK_STUBS debug_memory -DTCL_MEM_DEBUG debug_symbols -g output -o object .o strip -Wl,-s optimize -O2 noassert -DNDEBUG threadflags -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 \ -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 \ -DTCL_THREADS=1 # OSX Darwin-ppc compile gcc -c Darwin-ppc link gcc -bundle Darwin-ppc strip # Windows Windows-x86 compile gcc -c -nostdlib Windows-x86 link gcc -shared # Linux - default to current platform Linux-* compile gcc -c -fPIC Linux-* link gcc -shared -s # for cross-compiling using mingw - this will be automatically selected # if mingw is recognised mingw compile gcc -c -nostdlib mingw link gcc -shared # the following will only be selected on the command line # Linux - force 32 bit compile Linux-32 compile gcc -c -fPIC -m32 Linux-32 link gcc -shared -s # Linux - force 64 bit compile Linux-64 compile gcc -c -fPIC -m64 Linux-64 link gcc -shared -s
Until the changes are merged into the main Critcl source you can download the Critcl Starkit from http://www.digitalsmarties.com/pub/critcl.kit . It should be considered as work in progress - there are more changes being implemented, including recognising and handling several 64 bit environments.
The new Critcl was used in the development of Muzic. The changes were implemented by Steve Landers and sponsored by Eolas Technologies Inc. Thanks are due to Arjen Markus for his suggestions and assistance.
milarepa - 2011-03-22 05:33:19
When trying to build cryptkit cith critcl, -lresolv and -lcl_Linux-x86 are passed to GCC.
/usr/lib/libresolv.so is found, but libcl_Lunix-x86.so is not found, despite I have links corretly in place in /usr/lib. (I have tried many places without success ...)
Any idea why this appends ?
fred@pc-salon:~/Downloads/cryptlibl340$ ../critcl -k -f -pkg cryptkit bindings/cryptkit.tcl Compilation forced Files kept in ~/.critcl/Linux-x86 Source: cryptkit.tcl mar. mars 22 10:12:47 CET 2011 - /home/fred/Downloads/cryptlibl340/bindings/cryptkit.tcl gcc -r -nostdlib -DUSE_TCL_STUBS -fPIC -I/home/fred/.critcl/Linux-x86 -I/home/fred/Downloads/cryptlibl340 -o /home/fred/.critcl/Linux-x86/v035_f3376da98a25a3688b5158ce06d4a513_pic.o /home/fred/.critcl/Linux-x86/v035_f3376da98a25a3688b5158ce06d4a513.c -L/home/fred/Downloads/cryptlibl340 -lcl_Linux-x86 -lresolv /usr/bin/ld: cannot find -lcl_Linux-x86 collect2: ld returned 1 exit status ERROR while compiling code in /home/fred/Downloads/cryptlibl340/bindings/cryptkit.tcl: critcl build failed (/home/fred/Downloads/cryptlibl340/bindings/cryptkit.tcl)
AK - 2011-03-22 14:58:45
AK: -lcl, i.e. the library looked for is libcl... Could that be 'CryptLib'. In other words, it seems that cryptkit.tcl assumes that cryptlib is build and installed on your system. It might also be useful to look where in cryptkit.tcl the '-lcl' is declared, i.e. why it has this Linux-ix86 suffix.
stevel Further to AKs comments, this is a Cryptkit build issue, not a Critcl one. Follow the build instructions in the Cryptkit README file. It isn't an easy build, but it can be done if you follow the instructions carefully.