e93.org logo
A Programmer's Editor
  Building & Installing
  Syntax Maps
  Change Log
  Useful Tips
Building e93

Before proceeding, please read the license.

First off, e93 uses Tcl for its shell, so libtclXX.a must exist on your system before attempting to compile e93. You can get tcl from ftp.smli.com (/pub/tcl/).

If you would like to use an different version of Tcl, there should be no problem as long as it is not too old (only tested above 7.3). You will need to modify the makefile to point to the library file for the version you are using. The current makefile looks for: /usr/local/lib/libtclXX.a

The source for e93 is contained in 2 directories. The outermost directory contains the machine independent side of the code, while the "xgui" directory contains the X windows implementation of the GUI code.

The outermost makefile will build both sections and create the executable "e93".

To build e93 on most systems, (after Tcl is installed) all you need to do is: "cd" to the outer directory, and issue: "make".

The makefiles are initially set up to expect the Tcl include file (tcl.h) to be located in:


And the X11 include files to be located in:

If these are not the paths to the include files on your system, you will need to edit both "makefile", and "xgui/makefile" to point to the correct paths.

On some systems, you may run into trouble compiling xgui/events.c in the function:

void StartAlarmTimer()

The problem arises from this function's use of a "sigaction" structure which is defined somewhat inconsistently across machines. If you have trouble, you will need to look up the structure in your <signal.h>, or <sys/signal.h> file, and modify the member names appearing in StartAlarmTimer to suit whatever form your sigaction takes. This is not very difficult to do, but in future versions of e93, I will attempt to handle this in a better way. Suggestions are welcome.
Once e93 has compiled successfully, issue a "make install" command, and e93 will be copied to /usr/local/bin, along with the standard startup directory ".e93".

The ".e93" directory contains the resource file (e93rc.tcl) and the sub-directories "highlightschemes" and "syntaxmaps".

The "highlightschemes" directory contains the "schemes.tcl" file that defines a number of coloring (highlighting) schemes used by e93.

The "syntaxmaps" directory contains a number of language syntax map files. Syntax map files define the keywords/types/etc. used for a programming language.

To learn more about syntax maps, read the brief tutorial.

NOTE: you may need to become root in order to write to /usr/local/bin.