XEmacs -- Emacs: The Next Generation
     Searching XEmacs

Quick Links
About XEmacs Getting XEmacs Customizing XEmacs Troubleshooting XEmacs Developing XEmacs

Optional Libraries

Most external libraries used by XEmacs can be found at the XEmacs FTP site.

This page lists programs that are not included in the XEmacs distribution, but which are either used by various packages that are in the distribution or are enhancements which can be compiled into XEmacs. Where available, ftp sites, web home pages, and configure flags (although you should never have to specify library configure flags since they are autodetected) are indicated below.

Most of the files listed below contain the sources to these programs, and you will have to build them yourself. However, some binaries are available for the Win32 (i.e. native Windows 9x/NT/2000/XP), Cygwin and MinGW platforms.

Windows Binaries:

The win32 directory contains binaries for common graphics libraries needed for building XEmacs and for zlib, needed to support the PNG library. We recommend that you run optional-libs.exe, a self-extracting executable, which will install pre-built binaries for all of the optional graphics libraries needed by XEmacs, in the correct hierarchy as expected by XEmacs. Then just set the OPTIONAL_LIBRARY_DIR parameter to the appropriate directory in which you installed the libraries (by default, c:\src).

We no longer provide binaries for CVS, SSH or patch. If you want these, just install Cygwin, which provides versions of these and all other common Unix utilities, has an easy install program, and is frequently updated.

Cygwin, XFree86 Binaries:

Cygwin is a POSIX emulation environment for MS Windows. Development on Cygwin is quite active. Nearly every major or even semi-significant open-source Unix package on earth has been ported to Cygwin and is available in pre-built format from the Cygwin website. If you are planning on doing any development on XEmacs under Windows it's pretty much mandatory to install Cygwin. Among other things, you will undoubtedly need ssh and CVS, and GNU make as well if you want to rebuild the XEmacs packages or the web site.

Get Cygwin from site. (You will be asked to choose a mirror site; try mirrors.rcn.net.) Part of the setup process allows you to install XFree86. Other useful packages to consider are CVS (for access to the XEmacs source tree), ssh (needed in conjunction with CVS), make (for building the packages or the web site), gcc (for compiling XEmacs under Cygwin), png/zlib/Xpm/jpeg/tiff/compface libraries (see below), various other libraries (see below; prebuilt versions of most of them exist), autoconf (for rebuilding configure), TeX (for rebuilding certain parts of the package hierarchy), and wget (for rebuilding the web site).

MinGW Binaries:

Get MinGW. (MinGW is a version of GCC that uses native Microsoft DLL's instead of requiring a POSIX-emulation DLL, as Cygwin does.)

The mingw directory contains binaries for the graphics libraries (Xpm, png zlib, jpeg, tiff, compface -- remember that gif support is built in) needed for building XEmacs using the MinGW compiler. NOTE: Many of the binaries are out-of-date. Compile them yourself if possible.

Image Format Libraries:

The XPM image format library (virtually mandatory when building XEmacs)
configure flag: --with-xpm

The PNG image format library (strongly encouraged when building XEmacs)
configure flag: --with-png

The ZLIB compression library (strongly encouraged when building XEmacs) is used by the PNG library. A GZIP coding system is also available, in XEmacs 21.5 and onward.
configure flag: --with-zlib

The JPEG image format library (useful when building XEmacs)
configure flag: --with-jpeg

The TIFF image format library (not especially important when building XEmacs)
configure flag: --with-tiff

compface (not especially important when building XEmacs) is an old library for viewing X-Faces in messages. It is not really being maintained, but still works. The version of this library at xemacs.org includes the xbm2xface.php script, written by stig@hackvan.com, which may be useful when generating your own xface.
configure flag: --with-xface

X-Windows Widget Sets:

GTK is a modern widget set for X Windows. XEmacs still requires GTK v1, although support for GTK v2 is planned. 
gtk -1.2.10.tar.gz
configure flag: --with-gtk

Xaw3d is designed to be a drop-in replacement for the Athena widget library that `looks cooler'.
configure flag: --with-athena=3d

OpenMotif is the free release of Motif, a standard widget set for X Windows.
configure flag: --with-scrollbars=motif,--with-dialogs=motif,--with-widgets=motif,--with-xim=motif
(We don't currently recommend compiling with Motif menubars, as they are probably broken. They were broken awhile ago and no one has tried to fix them.)

LessTif is a library that is compatible with Motif, dating back from the days before Motif was free and still actively developed.
configure flag: --with-scrollbars=motif,--with-dialogs=motif,--with-widgets=motif
(Same caveats apply for menubars as with OpenMotif. Also LessTif didn't use to work with XIM; this may have changed.)

Other Multimedia:

Network Audio System (NAS) is a client-server sound library for X.
nas-1.7b.src.tar.gz (experimental)
configure flag: --with-sound=nas

Enlightened Sound Daemon (ESD) is yet another sound system.
configure flag: --with-sound=esd

Netpbm is a collection of programs that XEmacs might use at runtime.


These DBM implementations are supported by XEmacs: native dbm (provided by OS), GDBM, and Berkeley DB version 1, 2 and 3.

GDBM is the GNU DBM library, compatible with the Unix dbm library.
configure flag: --with-database=gnudbm

Berkeley DB is provided by Sleepycat Software.
configure flag: --with-database=berkdb

OpenLDAP is an implementation of the LDAP X.500 Directory protocol.
configure flag: --with-ldap

PostgreSQL is an SQL-compliant object-relational database management system.
configure flag: --with-postgresql


Canna is a Japanese language input method.
cfw35f1p.exe (Canna on W95; very old)
configure flag: --with-canna

Wnn is a multi-language mule input method. Wnn6 and Wnn7 are commercial versions. Wnn4, now completely orphaned, was once the free version. There is now a FreeWnn effort; it is not verified whether this version works with XEmacs.
configure flag: --with-wnn

The Wnn sites are in Japanese. Here is a site in English with some info on WNN

Mew is a multi-lingual mailreader.

mlterm is a multi-lingual terminal emulator with special support for Asian languages with large character sets. There are other similar programs (e.g. xiterm), but this one appears to be the most actively maintained.

kterm was for a long time the standard Asian-language terminal emulator, but appears to have not been maintained since 1996.

ispell is a spelling checker with support for multiple languages.

SKK (Simple Kana-to-Kanji) is a simple input method for Japanese. It has been modified to work with XEmacs.

X11 fonts for numerous languages.


ncurses is the standard free software curses library.
configure flag: --with-ncurses

GMP is a free library for arbitrary precision arithmetic. Support for bignums using GMP exists in XEmacs 21.5 and later.
configure flag: --use-number-lib=gmp

Developer Tools:

CVS is the version control system used by XEmacs to manage the sources.
cvs-1.12.12.tar.gz (experimental)
NOTE: The CVS home page recently (August 2, 2005) moved.

bzip2 is a compressor that compresses much better than gzip.

texi2html is a script that converts Texinfo pages to HTML.
NOTE: The texi2html home page recently (August 2, 2005) moved.

Gnats is a bug tracking system.
cern_wwwgnats_v2.0-beta.tar.gz (WWW front end to Gnats, extremely old)

Use autoconf to generate `configure' from `configure.in'.
Use autoconf to generate `configure' from `configure.in'. NOTE: Only autoconf 2.13 works with XEmacs 21.4. XEmacs 21.5 and above work with the current 2.59 release. autoconf-2.13.tar.gz

Use the applypatch program from the makepatch package to apply patches to upgrade from one beta release to another. Use this if you have a slow or expensive connection to the Net.


app design