XEmacs 21.4.1 "Copyleft".
[chise/xemacs-chise.git.1] / nt / README
index a6e5c95..7078852 100644 (file)
--- a/nt/README
+++ b/nt/README
-            Building and Installing XEmacs on Windows NT
+Building and Installing XEmacs on Windows 95/98/NT/2000    -*- mode:outline -*-
 
                             David Hobley
-                           Marc Paquette
-                          Jonathan Harris
-
-The port was made much easier by the groundbreaking work of Geoff Voelker
-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.
-    Visual C++ V5.0 installs a batch file called vcvars32.bat in
+                            Marc Paquette
+                           Jonathan Harris
+                              Ben Wing
+
+This is a port of XEmacs to Windows 95/98/NT/2000.  If you are looking for a
+port of GNU Emacs, see http://www.cs.washington.edu/homes/voelker/ntemacs.html.
+NT 3.51 or later is required for building on Windows NT.  Note that the
+developers typically use NT 4.0 and Windows 2000, and there may possibly be
+problems under Windows 95/98 and NT 3.51.  If so, please report them to
+xemacs-nt@xemacs.org; we are committed to maintaining compatibility with all
+systems listed.
+
+* 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 and later install 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.
+    Alternatively, you can choose at setup time to have these
+    environment variables automatically set up in the registry, which
+    is generally a good idea.
 
-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-modes, fsf-compat, cc-mode,
-    prog-modes and xemacs-devel packages.
-    Unpack the packages into, say, "c:\Program Files\XEmacs\xemacs-packages".
 
-3.  At this point you can select X or Win32 native GUI support.
+2.  Grab the latest XEmacs source from
 
-If you want to build for native GUI:
+      ftp://ftp.xemacs.org/pub/xemacs/
 
-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.
+    or one of its mirrors listed at http://www.xemacs.org/Download/index.html.
+
+    (NOTE: If you are behind a firewall and have problems with FTP access,
+    the URL http://ftp.xemacs.org/pub/xemacs/ works just as well.)
+
+    You'll also need the packages.  You probably want to get the unified
+    packages bundle from
+
+      ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
+
+    If you are building with international support, you also need
+
+      ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
+
+    Although we don't recommend it, you can also retrieve just the packages
+    you really need if you have an extremely slow net connection or are very
+    short on disk space.  You can find the various packages in
+    ftp://ftp.xemacs.org/pub/xemacs/packages/.  You will need the xemacs-base
+    package (and mule-base, if building with international support).  You'll
+    also need the texinfo package unless you have a copy of makeinfo.exe on
+    your machine.  If you want to download additional or updated packages
+    from within XEmacs you'll need the efs, dired and vm packages.  You'll
+    probably also want at least the edit-utils, text-modes, fsf-compat,
+    cc-mode, prog-modes and xemacs-devel packages.
+
+    Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
+    for example "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
+
+NOTE: XEmacs has not been tested with X support under the native
+Windows build for a long, long time!  It may not even compile any
+more.  If you are interested in X support, you're better off compiling
+the Cygwin version of XEmacs, which can handle both Win32 native and X
+frames (in the same binary, in fact, but not at the same time), and is
+actively tested with X support.
+
+If you want support for X you will also need:
+
+1.  An X server.  XEmacs has been tested and runs well under MI/X,
+    available from: http://www.microimages.com/mix/. (International aka
+    "Mule" support even works under this X server!) Unfortunately, this is
+    not free, but is trialware; you have to pay $25 if you want to use it
+    for more than 15 days.  XEmacs also runs (barely) under the free XWin
+    server that comes as part of the Cygwin XFree86 package, available at
+
+    ftp://sources.redhat.com/pub/cygwin/xfree/
+
+    or numerous mirrors, such as
+
+    ftp://ftp.freesoftware.com/pub/sourceware/cygwin/xfree/
+
+    There are numerous other X servers available in the same package or at
+    the same location, but unfortunately most of them behave even worse
+    than XWin.  If you have any luck with any of these, *PLEASE* email
+    the maintainers at xemacs-nt@xemacs.org, and we'll add the info here.
+
+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.
+
+
+* Optional libraries
+====================
+
+1.  You really want the XPM library.  Grab the latest version of the
+    xpm sources (xpm-3.4k.tar.gz at time of writing) from
+    ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere.
     Copy nt\xpm.mak from the xemacs sources to the lib subdirectory of the
     xpm sources, cd to that directory and build xpm with 'nmake -f xpm.mak'.
 
 2.  You probably also want PNG image support. Grab the latest versions of zlib
-    and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing), unpack them
-    somewhere and read the respective READMEs for details on how to build them.
-    The following build procedure works for zlib-1.1.3 and libpng-1.0.2:
+    and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing) from
+    ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read
+    the respective READMEs for details on how to build them.  The following
+    build procedure works for zlib-1.1.3 and libpng-1.0.2:
 
     cd to the zlib directory, type 'copy msdos\makefile.w32 Makefile' and
     then type 'nmake'.
@@ -48,117 +133,186 @@ If you want to build for native GUI:
     and type 'nmake -f scripts\makefile.w32'.
 
 3.  If you want TIFF support, grap the latest version of libtiff (tiff-v3.4
-    at time of writing) and unpack it somewhere. Copy nt\tiff.mak from the 
-    xemacs sources to the contrib\winnt subdirectory of the tiff sources, 
-    cd to that directory and build libtiff with 'nmake -f tiff.mak'. Note:
-    tiff.mak has only been verified to work under WinNT, not Win95 or 98. 
-    However, the lastest distribution of libtiff includes a 
-    contrib\win95\makefile.w95; that might work.
+    at time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack
+    it somewhere. Copy nt\tiff.mak from the xemacs sources to the
+    contrib\winnt subdirectory of the tiff sources, cd to that directory and
+    build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been
+    verified to work under WinNT, not Win95 or 98.  However, the latest
+    distribution of libtiff includes a contrib\win95\makefile.w95; that might
+    work.
 
 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.  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'.
-
-6.  cd to the nt subdirectory of the xemacs distribution and build xemacs:
-    `nmake install -f xemacs.mak`, but read on before hitting Enter.
-
-7.  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're building with PNG support, add this to the nmake command line:
-       HAVE_PNG=1 PNG_DIR="x:\location\of\your\png\sources"
-       ZLIB_DIR="x:\location\of\your\zlib\sources"
-
-    If you want to build with GIF support, add this to the nmake command line:
-       HAVE_GIF=1
-
-    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"
-
-8.  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 .\obj\emacs.obj and rebuild with
-    the new PACKAGE_PREFIX.
-
-9.  By default, XEmacs will be installed in directories under the directory
-    "c:\Program Files\XEmacs\XEmacs-21.0". If you want to install it elsewhere,
-    add this to the nmake command line:
-       INSTALL_DIR="x:\your\installation\directory"
-
-10. 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.
-
-11. 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:
-       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.
-
-
-If you want support for X you will 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.  The MIT X11R6.3 libraries available from: ftp.x.org
+    time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the
+    README for details on how to build it.
 
-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
-
---- 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.
-
-Any other problems you need clarified, please email us and we will endeavour
-to provide any assistance we can:
+5.  If you want X-Face support, grab the compface distribution from
+    ftp://ftp.xemacs.org/pub/xemacs/aux/ 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 copy the file
+    config.inc.samp to config.inc.  Make any necessary modifications.  This
+    file controls the options that XEmacs is built with:
+
+    -- If you want international (aka "Mule") support, modify the appropriate
+       line in config.inc as follows:
+
+       HAVE_MULE=1
+
+       NOTE: This support is still quite raw under the Win32 native GUI,
+       but works well if you compile the Cygwin version with X support
+       and disable native Win32 support (--with-msw=no).
+    
+    -- If you're building with XPM support, modify the appropriate lines in
+       config.inc as follows:
+
+       HAVE_XPM=1
+       XPM_DIR="x:\location\of\your\xpm\sources"
+    
+       and similarly for JPEG and TIFF support.
+
+    -- If you're building with PNG support, modify the appropriate lines in
+       config.inc as follows:
+
+       HAVE_PNG=1
+       PNG_DIR="x:\location\of\your\png\sources"
+       ZLIB_DIR="x:\location\of\your\zlib\sources"
+
+    -- If you're building with GIF support, modify the appropriate lines in
+       config.inc as follows:
+
+       HAVE_GIF=1
+
+    -- If you're building with X-Face support, modify the appropriate lines in
+       config.inc as follows:
+
+       HAVE_XFACE=1
+       COMPFACE_DIR="x:\location\of\your\compface\sources"
+
+    -- If you're building for X, modify the appropriate lines in config.inc
+       as follows:
+
+       HAVE_X_WINDOWS=1
+       X11_DIR=x:\root\directory\of\your\X11\installation
+
+    -- By default, XEmacs will expect to find its packages in the
+       subdirectories "site-packages", "mule-packages" and "xemacs-packages"
+       under the directory "c:\Program Files\XEmacs". If you want it to look
+       for these subdirectories elsewhere, modify the appropriate lines in
+       config.inc as follows:
+
+       PACKAGE_PREFIX="x:\your\package\directory"
+
+       Make sure that the directory pointed to by PACKAGE_PREFIX contains
+       the xemacs-packages directory into which you installed the packages.
+
+    -- XEmacs can build its info files more quickly if you have a copy of the
+       makeinfo program. If you have a copy, modify the appropriate lines in
+       config.inc as follows:
+
+       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.
+
+2.  If you want to install XEmacs when you build it, modify the appropriate
+    lines in config.inc as follows (you can also run XEmacs from its build
+    directory):
+
+       INSTALL_DIR="x:\your\installation\directory"
+
+    (By default, XEmacs will be installed in directories under the directory
+    "c:\Program Files\XEmacs\XEmacs-21.4".)
+
+3.  If you want to build xemacs on the command line, use
+    `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want
+    to run XEmacs from its build directory.  nmake will build temacs, the DOC
+    file, update the elc's, dump xemacs and (optionally) install the relevant
+    files in the directories under the installation directory.
+
+    If you chose to install XEmacs, the file that you should run to start
+    XEmacs will be installed (by default) as
+        "c:\Program Files\XEmacs\XEmacs-21.4\i586-pc-win32\xemacs.exe".
+
+    To run from the build directory, run the file "nt\xemacs.exe" off of the
+    root of the build directory.
+
+    You may want to create a shortcut to the file from your Desktop or
+    Start Menu.
+
+4.  To build using MS Developer Studio, you can use the workspace file
+    `nt/xemacs.dsw'.  This was prepared for Visual C++ 6.0.  If you are using
+    Visual C++ 5.0, you can use the workspace file `nt/xemacs-vc50.dsw'.  If
+    you have a different version and neither file works, just open up
+    `nt/xemacs.mak' from within MS Developer Studio and it will offer to wrap
+    this Makefile in a workspace file, from which you can build.  Assuming
+    you want to run from the build directory (which you will want to do if
+    you are planning on doing any development work on XEmacs), use the
+    following settings in Project/Settings...:
+
+    Under the General tab:
+
+    Build command line: NMAKE /f xemacs.mak
+    Output file name: ..\src\xemacs.exe
+    Browse info file name: ..\src\temacs.bsc
+
+    Under the Debug tab:
+
+    Executable for debug session: ..\src\xemacs.exe
+
+
+    If you want to install XEmacs when it's built, change the build command
+    line to "NMAKE install /f xemacs.mak". (You will have to make the same
+    change even if you use the provided workspace nt/xemacs.dsw.)
+
+
+* Debugging under MS Developer Studio
+=====================================
+
+The build process always creates debugging and "Source Browser" information
+in the source tree for use with DevStudio. However that information is not
+very useful unless you build a debug version of XEmacs:
+
+1.  Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild.
+
+2.  See instructions above for obtaining a workspace file for use with
+    MS Developer Studio.  Build and debug your XEmacs this way.
+
+3.  To display the contents of a lisp variable, type Shift-F9 (or use the
+    menu) to bring up the QuickWatch window, type debug_print(variable) and
+    click Recalculate. The output will appear in a console window, as well
+    as in the Debug window in MS Developer Studio.
+
+4.  To view Lisp variables in the "Watch" window wrap the variable in one of
+    the helper functions from the file src\console-msw.c, for example type
+    DSTRING(variable) in the "Watch" window to inspect a Lisp string.
+
+
+* Known Problems
+================
+
+Please look at the PROBLEMS file for known problems. Any other problems you
+need clarified, please email us and we will endeavour to provide any
+assistance we can:
 
 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
 Subscribe address:          xemacs-nt-request@xemacs.org
 
-David Hobley
-Marc Paquette
-August Hill
-Jonathan Harris
+Ben Wing (current primary MS Windows maintainer; author of the MS Windows
+          Mule code and some of the dialog box code)
+Andy Piper (MS Windows contributor; author of the Cygwin support and the
+            MS Windows glyph and widget code)
+Jonathan Harris (MS Windows contributor; author of the MS Windows redisplay
+                 and underlying GUI code)
+Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
+                   and printing code and some of the dialog box code;
+                   general guru on obscure MS Windows programming topics)
+David Hobley (early MS Windows contributor)
+Marc Paquette (early MS Windows contributor)
+August Hill (early MS Windows contributor)
 
 and others.