- Critcl now builds using a more traditional "gcc -c" step for each source file, followed by a "gcc -shared" step for linking a shared library
- the critcl::cflags procedure can be used to specify compiler flags
- the critcl::ldflags procedure can be used to specify linker flags
- the critcl::framework" procedure for specifying frameworks to use under MacOS X
- the critcl::clean_cache procedure and "critcl -clean" command are used to clean (i.e. empty) the Critcl cache
- the critcl::debug command can be used to specify that debugging is enabled - either "memory" and/or "symbols"
- the "bytearray" or "rawchar" types can be used as arguments and return values to critcl::cproc
- the "int*", "float*" and "double*" types can be used as arguments and return values to critcl::cproc
- improved cross-compiler support when using mingwin
- all extensions are now built "thread enabled"
# 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 -sUntil 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.
critcl2 & linking with custom library edit
milarepa - 2011-03-22 05:33:19When 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:45AK: -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.