- Building and Installing XEmacs on Windows NT
+Building and Installing XEmacs on Windows NT -*- mode:outline -*-
David Hobley
Marc Paquette
and others who worked on the GNU Emacs port to NT. Their version is available
from http://www.cs.washington.edu/homes/voelker/ntemacs.html
-To get it working you will need:
-1. You will need Visual C++ V4.0 or later to compile everything. Personally we
- have tested V4.0, V4.2 and V5.0.
- Note that Visual C++ assumes a couple of environment variables INCLUDE and
- LIB to be set which specify the location of the includes and libraries.
- Your PATH environment variable also needs to include the DevStudio vc\bin
- and sharedide\bin directories.
+* Required tools and sources
+============================
+
+1. You will need Visual C++ V4.0 or later to compile everything. Personally
+ we have tested V4.0, V4.2, V5.0 and v6.0.
+
+ Note that Visual C++ assumes that the environment variables INCLUDE and
+ LIB are set to specify the location of the includes and libraries.
+ Your PATH environment variable also needs to include the DevStudio
+ vc\bin and sharedide\bin directories.
+
Visual C++ V5.0 installs a batch file called vcvars32.bat in
c:\Program Files\DevStudio\VC\bin\ (or wherever you installed it) that you
can run before building to set up all of these environment variables.
-2. Grab the latest XEmacs source from ftp.xemacs.org if necessary. All Win32
- support is in the nt\ subdirectory. You'll also need the xemacs-base
- package from the binary-packages subdirectory and you'll probably also
- want at least the edit-utils, text-utils, cc-mode and prog-utils packages.
- Unpack the packages into, say, "c:\Program Files\XEmacs\packages".
+2. Grab the latest XEmacs source from ftp.xemacs.org if necessary.
+
+ You'll also need the xemacs-base package from the binary-packages
+ subdirectory and you'll probably also want at least the edit-utils,
+ text-modes, fsf-compat, cc-mode, prog-modes and xemacs-devel
+ packages.
+
+ You'll also need the texinfo package unless you have a copy of
+ makeinfo.exe on your machine.
+
+ Unpack the packages into, say, "c:\Program Files\XEmacs\xemacs-packages".
+
+3. At this point you can choose to build for X and/or for Win32 native GUI.
+ If you only want to build for the Win32 native GUI then skip the next
+ section.
+
+
+** Extra tools and sources required for X
+
+If you want support for X you will also need:
+
+1. An X server. MI/X is available on the Internet for free; It is
+ available from: http://www.microimages.com/www/html/freestuf/mixdlfrm.htm
+
+2. Source for the MIT X11R6.3 libraries, available from: ftp.x.org
+
+3. You'll need to compile the MIT libraries without multi-thread support.
+ To do this, there is an example Win32.cf and site.def provided which set
+ the relevant flags. You will also need to apply the patch in nt/X11.patch
+ in the xc/lib/X11 directory which will fix the DLL definition file.
+
+ Once compiled and installed, you will need to apply the patch in
+ nt/Xmd.patch. This is messy and better solutions would be appreciated.
+
+4. Goto step 2 under 'Optional libraries' below.
-3. At this point you can select X or Win32 native GUI support.
-If you want to build for native GUI:
+* Optional libraries
+====================
1. If you want XPM image and toolbar support grab the latest version of the
xpm sources (xpm-3.4k.tar.gz at time of writing) and unpack them somewhere.
4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b at
time of writing) and read the README for details on how to build it.
-5. cd to the nt subdirectory of the xemacs distribution and build xemacs:
+5. If you want X-Face support, grab compface distribution and unpack it
+ somewhere. Copy nt\compface.mak from xemacs sources to the compface
+ directory. cd to that directory and build libcompface with
+ 'nmake -f compface.mak'.
+
+
+* Building
+==========
+
+1. cd to the nt subdirectory of the xemacs distribution and build xemacs:
`nmake install -f xemacs.mak`, but read on before hitting Enter.
-6. If you're building with XPM support, add this to the nmake command line:
+2. If you're building with XPM support, add this to the nmake command line:
HAVE_XPM=1 XPM_DIR="x:\location\of\your\xpm\sources"
and similarly for JPEG and TIFF support.
If you want to build with GIF support, add this to the nmake command line:
HAVE_GIF=1
-7. By default, XEmacs will look for packages in
- "c:\Program Files\XEmacs\packages". If you want it to look elsewhere,
- add this to the nmake command line:
- PACKAGEPATH="x:\\location\\of\\your\\packages"
- Note the doubled-up backslashes in that path. If you want to change the
- package path after you've already built XEmacs, delete the file
- .\obj\emacs.obj before rebuilding with the new value of PACKAGEPATH.
+ If you're building with X-Face support, add this to the nmake command line:
+ HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources"
+
+ If you're building for X, add this to the nmake command line:
+ HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation
-8. By default, XEmacs will be installed in directories under the directory
- "c:\Program Files\XEmacs\XEmacs-21.0". If you want to install it
+3. By default, XEmacs will expect to find its packages in the subdirectories
+ "site-packages", "mule-packages" and "xemacs-packages" under the package
+ prefix directory "c:\Program Files\XEmacs". If you want it to look for
+ these subdirectories elsewhere, add this to the nmake command line:
+ PACKAGE_PREFIX="x:\your\package\directory"
+ If you change your mind and want to alter the package prefix directory
+ after you've built XEmacs, delete the file nt\obj\emacs.obj and rebuild
+ with the new PACKAGE_PREFIX setting.
+
+4. By default, XEmacs will be installed in directories under the directory
+ "c:\Program Files\XEmacs\XEmacs-21.2". If you want to install it
elsewhere, add this to the nmake command line:
INSTALL_DIR="x:\your\installation\directory"
-9. Now you can press Enter. nmake will build temacs, the DOC file, update the
- elc's, dump xemacs and install the relevant files in the directories under
- the installation directory. Unless you set INSTALL_DIR above, the file that
- you should run to start XEmacs will be installed as
- "c:\Program Files\XEmacs\XEmacs-21.0\i386-pc-win32\runemacs.exe". You may
- want to create a shortcut to that file from your Desktop or Start Menu.
-
-10. The build process always creates debugging and "Source Browser" information
- in the source tree for use with MS DevStudio. If you actually want to debug
- XEmacs you should run XEmacs from the source directory instead of from the
- installation directory. You should probably also build a debug version of
- XEmacs; to do this start with a clean source tree and add DEBUG_XEMACS=1 to
- the nmake command line. You probably don't want to install your debug build
- so you should tell nmake to build the 'all' target instead of the 'install'
- target.
-
- To make use of the debugging and "Source Browser" information, create a new
- "console" project in MS DevStudio and, under Project/Settings, set:
+5. XEmacs can build its info files more quickly if you have a copy of the
+ makeinfo program. If you have a copy, add this to the nmake command line:
+ MAKEINFO="x:\location\of\makeinfo.exe"
+ If you don't have a copy of makeinfo then you'll need to have installed
+ the XEmacs texinfo package.
+
+6. Now you can press Enter. nmake will build temacs, the DOC file, update
+ the elc's, dump xemacs and install the relevant files in the directories
+ under the installation directory.
+
+ Unless you set INSTALL_DIR above, the file that you should run to start
+ XEmacs will be installed as
+ "c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\runxemacs.exe".
+ You may want to create a shortcut to that file from your Desktop or
+ Start Menu.
+
+
+* Debugging under MS Developer Studio
+=====================================
+
+The build process always creates debugging and "Source Browser" information
+in the source tree for use with DevStudio. If you actually want to debug
+XEmacs you should probably build a debug version of XEmacs:
+
+1. Delete the directory nt\obj and it's contents.
+
+2. Add DEBUG_XEMACS=1 to the nmake command line and rebuild. You probably
+ don't want to install your debug build so you should tell nmake to build
+ the 'all' target instead of the 'install' target.
+
+3. To make use of the debugging and "Source Browser" information, create a
+ new "console" project in DevStudio and, under Project/Settings, set:
Debug: executable name = full path of src\xemacs.exe
Link: output file name = full path of src\temacs.exe
Browse Info: browse info file name = full path of src\temacs.bsc
Remember to close the Source Browser file in DevStudio before rebuilding.
+4. Start XEmacs from within DevStudio or by running src\xemacs.exe so that
+ you get a console window which may contain helpful debugging info.
-If you want support for X you will need:
+5. To display the contents of a lisp variable click Debug/QuickWatch, type
+ debug_print(variable) and click Recalculate. The output will appear in
+ the console window.
-1. An X server. MI/X is available on the Internet for free; It is
- available from: http://www.microimages.com/www/html/freestuf/mixdlfrm.htm
-
-2. The MIT X11R6.3 libraries available from: ftp.x.org
+6. To view lisp variables in the "Watch" window wrap the variable in one of
+ the helper functions from the file src\console-msw.c. eg type
+ DSTRING(variable) in the "Watch" window to inspect a lisp string.
-3. You'll need to compile the MIT libraries without multi-thread support.
- To do this, there is an example Win32.cf and site.def provided which
- set the relevant flags. You will also need to apply the patch in
- nt/X11.patch in the xc/lib/X11 directory which will fix the DLL definition
- file. Once compiled and installed, you will need to apply the following
- patch to Xmd.h. This is messy and better solutions would be appreciated.
-4. Goto 2 under 'native GUI' above and add this to the nmake command line:
- HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation
+* Known Problems
+================
---- Xmd.h~ Thu Jun 08 23:20:40 1995
-+++ Xmd.h Sun Mar 16 13:09:10 1997
-@@ -150,8 +150,9 @@
- typedef CARD16 BITS16;
- typedef CARD8 BYTE;
-
-+#ifndef WIN32
- typedef CARD8 BOOL;
--
-+#endif
-
-Known Problems:
-Please look at the TODO list for the current list of problems and people
-working on them.
+Please look at the PROBLEMS file for known problems and at the TODO list for
+the current list of problems and people working on them.
Any other problems you need clarified, please email us and we will endeavour
to provide any assistance we can: