README file for the Xakcl interface between akcl and X windows. 04 Sep 92 Copyright (c) 1992, The University of Texas at Austin. All rights reserved. See the file "copyright" for full copyright statement. Xakcl is an interface from akcl to the Xwindows library, written by Hiep Huu Nguyen ( hhnguyen@cs.utexas.edu ). Xakcl has been tested on the HP9000 and SUN4 but should work on any machine that runs an akcl that allows dynamic linking (i.e. the Suns, Decs). In order to create Xakcl, it is necesary to have akcl running. dwindow.lsp is an "easy to use" interface from Lisp to Xakcl, written by Gordon S. Novak Jr. ( novak@cs.utexas.edu ) It is written in GLISP and has been translated into the Common Lisp file dwtrans.lsp , which is what most users will use. Documentation is provided in the LaTex file dwdoc.tex . Test files are dwtest.lsp and pcalc.lsp . Akcl and Xakcl can be ftp'ed from rascal.ics.utexas.edu 128.83.138.20 cli.com 192.31.85.1 The file is called xakcl.tar.Z. ftp it to your site and uncompress and un-tar it: uncompress xakcl.tar.Z tar -xf xakcl.tar After un-taring, the Xakcl direcotory contains the files: Events.c Makefile README X.lsp X10.lsp XAtom.lsp XStruct-2.c XStruct-4.c XStruct-l-3.lsp Xakcl.example.lsp Xakcl.paper Xinit.lsp Xlib.lsp Xstruct.lsp Xutil-2.c Xutil.lsp copyright defentry-events.lsp dispatch-events.lsp dwdoc.tex dwindow.lsp dwtest.lsp dwtrans.lsp foo.del general-c.c general.lsp keysymdef.lsp make-xakcl.lsp pcalc.lsp These files contain: c code necesary for some general facilities and interface into X, in the files: Events.c XStruct-4.c XStruct-2.c Xutil-2.c general-c.c The lisp and shell makefiles that compile and create Xakcl are: make-xakcl.lsp: Makefile For reference the lisp interfaces to functions reside in: Xlib.lsp Xstruct.lsp general.lsp Xutil.lsp XStruct-l-3.lsp defentry-events.lsp Constant declarations are in: X.lsp XAtom.lsp keysymdef.lsp X10.lsp These files correspond to C header files for X windows: Xlib.lsp Xutil.lsp X.lsp XAtom.lsp keysymdef.lsp X10.lsp What little documentation there is: Xakcl.paper Also see Xakcl.example.lsp for some PRIMITIVE examples. dwindow package files: dwindow.lsp source code, written in GLISP dwtrans.lsp dwindow.lsp translated to plain Common Lisp dwdoc.tex documentation in LaTex dwtest.lsp examples of use of dwindow pcalc.lsp pocket calculator In order to make Xakcl, first edit the Makefile and change the IFLAGS variable to your system configuration. Then run akcl. Load the file "make-xackl.lsp". Compile the files with (compile-xakcl). Set the variable *libs* to your library paths. Then make xakcl with (make-xakcl). This will save a lisp image called Xakcl in your directory. If you do not want to save the lisp image (which is about 3 megabytes), you can compile Xakcl once, and comment out the line (save "Xakcl") from the function make-xakcl. Save this file, and when you want to use Xakcl call make-xakcl. Now make-xakcl will only link in the Xackl library without saving the lisp image. it takes about 3 minutes to do this. % ;; edit the Makfile .... %akcl >(load "make-xakcl.lsp") >(compile-xakcl) .... >(setq *libs* "-L /usr/local/lib/X11 -L /usr/local/lib") ;; ie for HP or >(setq *libs* "-L/usr/local/libX11 -L/usr/local/lib") ;; for suns >(make-xakcl) .... After making an image of Xakcl, run Xakcl with the command 'Xakcl'. Below is a sample session. %Xakcl AKCL (Austin Kyoto Common Lisp) Version(1.605) Wed Dec 18 12:57:00 CST 1991 Contains Enhancements by W. Schelter >(load "Xinit.lsp") Loading Xinit.lsp Finished loading Xinit.lsp T >(Xinit) NIL >(open-window) 10485761 >(bye) Bye. As you can see, all that happened was that a simple window appeared. Read the paper Xakcl.paper for more details. To try the dwindow package, do the following: %Xakcl (load "dwtrans.o") ; compiled dwtrans.lsp = translated dwindow functions (load "dwtest.lsp") ; test functions (wtesta) ; make a window (wtestb) ; draw some stuff (wtestc) ; choose from menu, then click in window (wtestd) ; menu with icons (wteste) ; picture menu with sensitive points (wtesth) ; arrows (load "pcalc.lsp") (pcalc) ; pocket calculator