configure
-script has a set of flags which can be
used to fine-tune the Tcl/Tk interface. See `INSTALL' for details.
TCLLIB
.
The primary Tcl/Tk site is:
http://www.scriptics.com
With Tcl 7.5 and later, many extensions are modules which can be
simply loaded by the load
tcl-command.
To be able to use extensions which can not be loaded by the load
command, the tcltk
resource has to be relinked. Below is an
example of using BLT-1.9 with Tcl/Tk v.7.4/4.0 and SICStus:
# File: `Makefile' MAKE= make MFLAGS= CC= cc CFLAGS= -O INCR_CFLAGS= -DSPDLL SHSFX= so STSFX= s.o SP_INC= /usr/local/include SP_LIB= /usr/local/lib/sicstus SP_SRC= /usr/local/src/sicstus3 TCLINC= -I/usr/local/include TCLLIB= -L/usr/local/lib -lBLT -ltk4.0 -ltcl7.4 -lX11 -lsocket -lm TCLTKOBJS= $(SP_SRC)/library/tcltk/tcl.o $(SP_SRC)/library/tcltk/tk.o \ $(SP_SRC)/library/tcltk/util.o $(SP_SRC)/library/tcltk/tkterm.o \ blttkapi.o tcltk.$(SHSFX): tcltk.pl blttkapi.o (cd $(SP_SRC)/library/tcltk; \ $(MAKE) $(MFLAGS) dyn MAKE=$(MAKE) MFLAGS='$(MFLAGS)' \ CC=$(CC) CFLAGS='-DSICSTUS $(CFLAGS)' \ SP_INC=$(SP_INC) TCLINC='$(TCLINC)' \ INCR_CFLAGS='$(INCR_CFLAGS)' ) $(SP_LIB)/bin/splfr tcltk tcltk +o $(TCLTKOBJS) +l $(TCLLIB) tcltk.$(STSFX): tcltk.pl blttkapi.o (cd $(SP_SRC)/library/tcltk; \ $(MAKE) $(MFLAGS) stat MAKE=$(MAKE) MFLAGS='$(MFLAGS)' \ CC=$(CC) CFLAGS='-DSICSTUS $(CFLAGS)' \ SP_INC=$(SP_INC) TCLINC='$(TCLINC)' \ INCR_CFLAGS= ) $(SP_LIB)/bin/splfr tcltk tcltk +static +o $(TCLTKOBJS) +l $(TCLLIB) tcltk.pl: ln -s $(SP_SRC)/library/tcltk.pl blttkapi.o: blttkapi.c $(CC) -c $(CFLAGS) $(INCR_CFLAGS) $(TCLINC) blttkapi.c
/* File: `blttkapi.c' */ #include <tcl.h> int Tcl_AppInit(interp) Tcl_Interp *interp; { /* * Call the init procedures for included packages. Each call should * look like this: * * if (Mod_Init(interp) == TCL_ERROR) { * return TCL_ERROR; * } * * where "Mod" is the name of the module. */ if (Blt_Init(interp) != TCL_OK) { return TCL_ERROR; } /* * Call Tcl_CreateCommand for application-specific commands, if * they weren't already created by the init procedures called above. */ /* * Specify a user-specific startup file to invoke if the application * is run interactively. Typically the startup file is "~/.apprc" * where "app" is the name of the application. If this line is deleted * then no user-specific startup file will be run under any conditions. */ /* tcl_RcFileName = "~/.wishrc"; */ return TCL_OK; }
% File: `test.pl' :- use_module(tcltk). main :- tk_new([], I), % calendar from blt-1.9/demos tcl_eval(I, 'source calendar', _), tk_main_loop.
Typical make invocation:
% make tcltk.so \ CC=gcc CFLAGS=-g \ SP_INC=/src/sicstus/san/bin/sun4sol/include \ SP_LIB=/src/sicstus/san/bin/sun4sol/bin \ SP_SRC=/home/san/sicstus3 \ TCLINC=-I/src/sicstus/san/TclTk/inc40 \ TCLLIB='-L/src/sicstus/san/TclTk/blt-1.9/src -lBLT -L/usr/local/lib -ltk4.0 -ltcl7.4 -lX11 -lsocket -lm -L/usr/gnu/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2.1 -lgcc'
Go to the first, previous, next, last section, table of contents.