442
+ − 1 Building and Installing XEmacs on Windows 95/98/NT/2000 -*- mode:outline -*-
428
+ − 2
+ − 3 David Hobley
442
+ − 4 Marc Paquette
+ − 5 Jonathan Harris
+ − 6 Ben Wing
428
+ − 7
442
+ − 8 This is a port of XEmacs to Windows 95/98/NT/2000. If you are looking for a
+ − 9 port of GNU Emacs, see http://www.cs.washington.edu/homes/voelker/ntemacs.html.
+ − 10 NT 3.51 or later is required for building on Windows NT. Note that the
+ − 11 developers typically use NT 4.0 and Windows 2000, and there may possibly be
+ − 12 problems under Windows 95/98 and NT 3.51. If so, please report them to
+ − 13 xemacs-nt@xemacs.org; we are committed to maintaining compatibility with all
+ − 14 systems listed.
428
+ − 15
442
+ − 16 * Required tools and sources
+ − 17 ============================
+ − 18
+ − 19 1. You will need Visual C++ V4.0 or later to compile everything. Personally
+ − 20 we have tested V4.0, V4.2, V5.0 and v6.0.
428
+ − 21
442
+ − 22 Note that Visual C++ assumes that the environment variables INCLUDE and
+ − 23 LIB are set to specify the location of the includes and libraries.
+ − 24 Your PATH environment variable also needs to include the DevStudio
+ − 25 vc\bin and sharedide\bin directories.
+ − 26
+ − 27 Visual C++ V5.0 and later install a batch file called vcvars32.bat in
428
+ − 28 c:\Program Files\DevStudio\VC\bin\ (or wherever you installed it) that you
+ − 29 can run before building to set up all of these environment variables.
442
+ − 30 Alternatively, you can choose at setup time to have these
+ − 31 environment variables automatically set up in the registry, which
+ − 32 is generally a good idea.
428
+ − 33
442
+ − 34
+ − 35 2. Grab the latest XEmacs source from
+ − 36
+ − 37 ftp://ftp.xemacs.org/pub/xemacs/
+ − 38
+ − 39 or one of its mirrors listed at http://www.xemacs.org/Download/index.html.
+ − 40
+ − 41 (NOTE: If you are behind a firewall and have problems with FTP access,
+ − 42 the URL http://ftp.xemacs.org/pub/xemacs/ works just as well.)
+ − 43
+ − 44 You'll also need the packages. You probably want to get the unified
+ − 45 packages bundle from
+ − 46
+ − 47 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
+ − 48
+ − 49 If you are building with international support, you also need
+ − 50
+ − 51 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
+ − 52
+ − 53 Although we don't recommend it, you can also retrieve just the packages
+ − 54 you really need if you have an extremely slow net connection or are very
+ − 55 short on disk space. You can find the various packages in
+ − 56 ftp://ftp.xemacs.org/pub/xemacs/packages/. You will need the xemacs-base
+ − 57 package (and mule-base, if building with international support). You'll
+ − 58 also need the texinfo package unless you have a copy of makeinfo.exe on
+ − 59 your machine. If you want to download additional or updated packages
+ − 60 from within XEmacs you'll need the efs, dired and vm packages. You'll
+ − 61 probably also want at least the edit-utils, text-modes, fsf-compat,
+ − 62 cc-mode, prog-modes and xemacs-devel packages.
+ − 63
+ − 64 Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
+ − 65 for example "c:\Program Files\XEmacs\xemacs-packages".
+ − 66
+ − 67 3. At this point you can choose to build for X and/or for Win32 native GUI.
+ − 68 If you only want to build for the Win32 native GUI then skip the next
+ − 69 section.
+ − 70
+ − 71
+ − 72 ** Extra tools and sources required for X
428
+ − 73
442
+ − 74 NOTE: XEmacs has not been tested with X support under the native
+ − 75 Windows build for a long, long time! It may not even compile any
+ − 76 more. If you are interested in X support, you're better off compiling
+ − 77 the Cygwin version of XEmacs, which can handle both Win32 native and X
+ − 78 frames (in the same binary, in fact, but not at the same time), and is
+ − 79 actively tested with X support.
+ − 80
+ − 81 If you want support for X you will also need:
+ − 82
+ − 83 1. An X server. XEmacs has been tested and runs well under MI/X,
+ − 84 available from: http://www.microimages.com/mix/. (International aka
+ − 85 "Mule" support even works under this X server!) Unfortunately, this is
+ − 86 not free, but is trialware; you have to pay $25 if you want to use it
+ − 87 for more than 15 days. XEmacs also runs (barely) under the free XWin
+ − 88 server that comes as part of the Cygwin XFree86 package, available at
+ − 89
+ − 90 ftp://sources.redhat.com/pub/cygwin/xfree/
+ − 91
+ − 92 or numerous mirrors, such as
+ − 93
+ − 94 ftp://ftp.freesoftware.com/pub/sourceware/cygwin/xfree/
428
+ − 95
442
+ − 96 There are numerous other X servers available in the same package or at
+ − 97 the same location, but unfortunately most of them behave even worse
+ − 98 than XWin. If you have any luck with any of these, *PLEASE* email
+ − 99 the maintainers at xemacs-nt@xemacs.org, and we'll add the info here.
+ − 100
+ − 101 2. Source for the MIT X11R6.3 libraries, available from ftp.x.org.
+ − 102
+ − 103 3. You'll need to compile the MIT libraries without multi-thread support.
+ − 104 To do this, there is an example Win32.cf and site.def provided which set
+ − 105 the relevant flags. You will also need to apply the patch in nt/X11.patch
+ − 106 in the xc/lib/X11 directory which will fix the DLL definition file.
428
+ − 107
442
+ − 108 Once compiled and installed, you will need to apply the patch in
+ − 109 nt/Xmd.patch. This is messy and better solutions would be appreciated.
+ − 110
+ − 111 4. Goto step 2 under 'Optional libraries' below.
+ − 112
+ − 113
+ − 114 * Optional libraries
+ − 115 ====================
+ − 116
+ − 117 1. You really want the XPM library. Grab the latest version of the
+ − 118 xpm sources (xpm-3.4k.tar.gz at time of writing) from
+ − 119 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere.
428
+ − 120 Copy nt\xpm.mak from the xemacs sources to the lib subdirectory of the
+ − 121 xpm sources, cd to that directory and build xpm with 'nmake -f xpm.mak'.
+ − 122
+ − 123 2. You probably also want PNG image support. Grab the latest versions of zlib
442
+ − 124 and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing) from
+ − 125 ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read
+ − 126 the respective READMEs for details on how to build them. The following
+ − 127 build procedure works for zlib-1.1.3 and libpng-1.0.2:
428
+ − 128
+ − 129 cd to the zlib directory, type 'copy msdos\makefile.w32 Makefile' and
+ − 130 then type 'nmake'.
+ − 131
+ − 132 cd to the libpng directory, rename or move the zlib directory to ..\zlib
+ − 133 and type 'nmake -f scripts\makefile.w32'.
+ − 134
+ − 135 3. If you want TIFF support, grap the latest version of libtiff (tiff-v3.4
442
+ − 136 at time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack
+ − 137 it somewhere. Copy nt\tiff.mak from the xemacs sources to the
+ − 138 contrib\winnt subdirectory of the tiff sources, cd to that directory and
+ − 139 build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been
444
+ − 140 verified to work under WinNT, not Win95 or 98. However, the latest
442
+ − 141 distribution of libtiff includes a contrib\win95\makefile.w95; that might
+ − 142 work.
428
+ − 143
+ − 144 4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b at
442
+ − 145 time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the
+ − 146 README for details on how to build it.
428
+ − 147
442
+ − 148 5. If you want X-Face support, grab the compface distribution from
+ − 149 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack it somewhere.
+ − 150 Copy nt\compface.mak from xemacs sources to the compface directory.
+ − 151 cd to that directory and build libcompface with 'nmake -f compface.mak'.
428
+ − 152
+ − 153
442
+ − 154 * Building
+ − 155 ==========
+ − 156
+ − 157 1. cd to the nt subdirectory of the xemacs distribution and copy the file
+ − 158 config.inc.samp to config.inc. Make any necessary modifications. This
+ − 159 file controls the options that XEmacs is built with:
+ − 160
+ − 161 -- If you want international (aka "Mule") support, modify the appropriate
+ − 162 line in config.inc as follows:
+ − 163
+ − 164 HAVE_MULE=1
428
+ − 165
442
+ − 166 NOTE: This support is still quite raw under the Win32 native GUI,
+ − 167 but works well if you compile the Cygwin version with X support
+ − 168 and disable native Win32 support (--with-msw=no).
+ − 169
+ − 170 -- If you're building with XPM support, modify the appropriate lines in
+ − 171 config.inc as follows:
+ − 172
+ − 173 HAVE_XPM=1
+ − 174 XPM_DIR="x:\location\of\your\xpm\sources"
+ − 175
+ − 176 and similarly for JPEG and TIFF support.
428
+ − 177
442
+ − 178 -- If you're building with PNG support, modify the appropriate lines in
+ − 179 config.inc as follows:
+ − 180
+ − 181 HAVE_PNG=1
+ − 182 PNG_DIR="x:\location\of\your\png\sources"
+ − 183 ZLIB_DIR="x:\location\of\your\zlib\sources"
+ − 184
+ − 185 -- If you're building with GIF support, modify the appropriate lines in
+ − 186 config.inc as follows:
+ − 187
+ − 188 HAVE_GIF=1
428
+ − 189
442
+ − 190 -- If you're building with X-Face support, modify the appropriate lines in
+ − 191 config.inc as follows:
+ − 192
+ − 193 HAVE_XFACE=1
+ − 194 COMPFACE_DIR="x:\location\of\your\compface\sources"
+ − 195
+ − 196 -- If you're building for X, modify the appropriate lines in config.inc
+ − 197 as follows:
+ − 198
+ − 199 HAVE_X_WINDOWS=1
+ − 200 X11_DIR=x:\root\directory\of\your\X11\installation
+ − 201
+ − 202 -- By default, XEmacs will expect to find its packages in the
+ − 203 subdirectories "site-packages", "mule-packages" and "xemacs-packages"
+ − 204 under the directory "c:\Program Files\XEmacs". If you want it to look
+ − 205 for these subdirectories elsewhere, modify the appropriate lines in
+ − 206 config.inc as follows:
428
+ − 207
442
+ − 208 PACKAGE_PREFIX="x:\your\package\directory"
+ − 209
+ − 210 Make sure that the directory pointed to by PACKAGE_PREFIX contains
+ − 211 the xemacs-packages directory into which you installed the packages.
+ − 212
+ − 213 -- XEmacs can build its info files more quickly if you have a copy of the
+ − 214 makeinfo program. If you have a copy, modify the appropriate lines in
+ − 215 config.inc as follows:
+ − 216
+ − 217 MAKEINFO="x:\location\of\makeinfo.exe"
+ − 218
+ − 219 If you don't have a copy of makeinfo then you'll need to have installed
+ − 220 the XEmacs texinfo package.
+ − 221
+ − 222 2. If you want to install XEmacs when you build it, modify the appropriate
+ − 223 lines in config.inc as follows (you can also run XEmacs from its build
+ − 224 directory):
+ − 225
+ − 226 INSTALL_DIR="x:\your\installation\directory"
428
+ − 227
442
+ − 228 (By default, XEmacs will be installed in directories under the directory
+ − 229 "c:\Program Files\XEmacs\XEmacs-21.2".)
+ − 230
+ − 231 3. If you want to build xemacs on the command line, use
+ − 232 `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want
+ − 233 to run XEmacs from its build directory. nmake will build temacs, the DOC
+ − 234 file, update the elc's, dump xemacs and (optionally) install the relevant
+ − 235 files in the directories under the installation directory.
+ − 236
+ − 237 If you chose to install XEmacs, the file that you should run to start
+ − 238 XEmacs will be installed (by default) as
+ − 239 "c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\xemacs.exe".
+ − 240
+ − 241 To run from the build directory, run the file "nt\xemacs.exe" off of the
+ − 242 root of the build directory.
+ − 243
+ − 244 You may want to create a shortcut to the file from your Desktop or
+ − 245 Start Menu.
+ − 246
+ − 247 4. To build using MS Developer Studio, you can use the workspace file
+ − 248 `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you are using
+ − 249 Visual C++ 5.0, you can use the workspace file `nt/xemacs-vc50.dsw'. If
+ − 250 you have a different version and neither file works, just open up
+ − 251 `nt/xemacs.mak' from within MS Developer Studio and it will offer to wrap
+ − 252 this Makefile in a workspace file, from which you can build. Assuming
+ − 253 you want to run from the build directory (which you will want to do if
+ − 254 you are planning on doing any development work on XEmacs), use the
+ − 255 following settings in Project/Settings...:
+ − 256
+ − 257 Under the General tab:
+ − 258
+ − 259 Build command line: NMAKE /f xemacs.mak
+ − 260 Output file name: ..\src\xemacs.exe
+ − 261 Browse info file name: ..\src\temacs.bsc
+ − 262
+ − 263 Under the Debug tab:
428
+ − 264
442
+ − 265 Executable for debug session: ..\src\xemacs.exe
+ − 266
+ − 267
+ − 268 If you want to install XEmacs when it's built, change the build command
+ − 269 line to "NMAKE install /f xemacs.mak". (You will have to make the same
+ − 270 change even if you use the provided workspace nt/xemacs.dsw.)
+ − 271
+ − 272
+ − 273 * Debugging under MS Developer Studio
+ − 274 =====================================
+ − 275
+ − 276 The build process always creates debugging and "Source Browser" information
+ − 277 in the source tree for use with DevStudio. However that information is not
+ − 278 very useful unless you build a debug version of XEmacs:
+ − 279
+ − 280 1. Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild.
+ − 281
+ − 282 2. See instructions above for obtaining a workspace file for use with
+ − 283 MS Developer Studio. Build and debug your XEmacs this way.
+ − 284
+ − 285 3. To display the contents of a lisp variable, type Shift-F9 (or use the
+ − 286 menu) to bring up the QuickWatch window, type debug_print(variable) and
+ − 287 click Recalculate. The output will appear in a console window, as well
+ − 288 as in the Debug window in MS Developer Studio.
+ − 289
+ − 290 4. To view Lisp variables in the "Watch" window wrap the variable in one of
+ − 291 the helper functions from the file src\console-msw.c, for example type
+ − 292 DSTRING(variable) in the "Watch" window to inspect a Lisp string.
+ − 293
+ − 294
+ − 295 * Known Problems
+ − 296 ================
+ − 297
+ − 298 Please look at the PROBLEMS file for known problems. Any other problems you
+ − 299 need clarified, please email us and we will endeavour to provide any
+ − 300 assistance we can:
428
+ − 301
+ − 302 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
+ − 303 Subscribe address: xemacs-nt-request@xemacs.org
+ − 304
442
+ − 305 Ben Wing (current primary MS Windows maintainer; author of the MS Windows
+ − 306 Mule code and some of the dialog box code)
+ − 307 Andy Piper (MS Windows contributor; author of the Cygwin support and the
+ − 308 MS Windows glyph and widget code)
+ − 309 Jonathan Harris (MS Windows contributor; author of the MS Windows redisplay
+ − 310 and underlying GUI code)
+ − 311 Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
+ − 312 and printing code and some of the dialog box code;
+ − 313 general guru on obscure MS Windows programming topics)
+ − 314 David Hobley (early MS Windows contributor)
+ − 315 Marc Paquette (early MS Windows contributor)
+ − 316 August Hill (early MS Windows contributor)
428
+ − 317
+ − 318 and others.