900
+ − 1 Building and Installing XEmacs on Windows 95/98/NT/2000/XP -*- mode:outline -*-
428
+ − 2
+ − 3 David Hobley
442
+ − 4 Marc Paquette
+ − 5 Jonathan Harris
+ − 6 Ben Wing
428
+ − 7
900
+ − 8 This is a port of XEmacs to Windows 95/98/NT/2000/XP. If you are looking for a
916
+ − 9 port of GNU Emacs, get the latest release of the 21.x series from gnu.org.
+ − 10 (At the time of writing, GNU Emacs does not support images but does support
+ − 11 Mule.) NT 4.0 or later is required for building on Windows NT. Note that the
442
+ − 12 developers typically use NT 4.0 and Windows 2000, and there may possibly be
827
+ − 13 problems under Windows 95/98. If so, please report them to
442
+ − 14 xemacs-nt@xemacs.org; we are committed to maintaining compatibility with all
+ − 15 systems listed.
428
+ − 16
442
+ − 17 * Required tools and sources
+ − 18 ============================
+ − 19
900
+ − 20 1. You will need Visual C++ V6.0, Visual Studio .NET or later to compile
+ − 21 everything.
428
+ − 22
442
+ − 23 Note that Visual C++ assumes that the environment variables INCLUDE and
+ − 24 LIB are set to specify the location of the includes and libraries.
827
+ − 25 Your PATH environment variable also needs to include the Visual Studio
442
+ − 26 vc\bin and sharedide\bin directories.
+ − 27
900
+ − 28 Visual C++ V6.0 installs a batch file called vcvars32.bat in
812
+ − 29 c:\Program Files\Microsoft Visual Studio\VC98\bin\ (or wherever you
+ − 30 installed it) that you can run before building to set up all of these
+ − 31 environment variables. Alternatively, you can choose at setup time to
+ − 32 have these environment variables automatically set up in the registry,
+ − 33 which is generally a good idea.
428
+ − 34
900
+ − 35 Visual Studio .NET calls this batch file vsvars32.bat and installs it in
+ − 36 $Installdir\Common7\Tools, but doesn't offer at install time to
+ − 37 automatically set these environment variables up in the registry.
442
+ − 38
+ − 39 2. Grab the latest XEmacs source from
+ − 40
+ − 41 ftp://ftp.xemacs.org/pub/xemacs/
+ − 42
+ − 43 or one of its mirrors listed at http://www.xemacs.org/Download/index.html.
+ − 44
+ − 45 (NOTE: If you are behind a firewall and have problems with FTP access,
+ − 46 the URL http://ftp.xemacs.org/pub/xemacs/ works just as well.)
+ − 47
+ − 48 You'll also need the packages. You probably want to get the unified
+ − 49 packages bundle from
+ − 50
+ − 51 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
+ − 52
+ − 53 If you are building with international support, you also need
+ − 54
+ − 55 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
+ − 56
+ − 57 Although we don't recommend it, you can also retrieve just the packages
+ − 58 you really need if you have an extremely slow net connection or are very
+ − 59 short on disk space. You can find the various packages in
+ − 60 ftp://ftp.xemacs.org/pub/xemacs/packages/. You will need the xemacs-base
+ − 61 package (and mule-base, if building with international support). You'll
+ − 62 also need the texinfo package unless you have a copy of makeinfo.exe on
+ − 63 your machine. If you want to download additional or updated packages
+ − 64 from within XEmacs you'll need the efs, dired and vm packages. You'll
+ − 65 probably also want at least the edit-utils, text-modes, fsf-compat,
+ − 66 cc-mode, prog-modes and xemacs-devel packages.
+ − 67
+ − 68 Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
+ − 69 for example "c:\Program Files\XEmacs\xemacs-packages".
+ − 70
1330
+ − 71 3. The native build no longer supports X Windows. There is no point,
+ − 72 since the Cygwin build is actively maintained and supports X Windows
+ − 73 very well. See the FAQ if you want to build with Cygwin.
442
+ − 74
+ − 75
+ − 76 * Optional libraries
+ − 77 ====================
+ − 78
827
+ − 79 1. You really want the XPM library. Grab the latest version of the xpm
1780
+ − 80 sources (xpm-3.4k.tar.gz as of 2003-10-27) from
827
+ − 81 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere. Copy
+ − 82 nt\xpm.mak from the xemacs sources to the lib subdirectory of the xpm
+ − 83 sources, cd to that directory and build xpm with 'nmake -f xpm.mak'.
428
+ − 84
827
+ − 85 2. You probably also want PNG image support. Grab the latest versions of
1780
+ − 86 zlib and libpng (zlib-1.1.4 and libpng-1.2.5 as of 2003-10-27) from
827
+ − 87 ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read the
+ − 88 respective READMEs for details on how to build them. The following
1780
+ − 89 build procedure works for zlib-1.1.4 and libpng-1.2.5:
428
+ − 90
1780
+ − 91 cd to the zlib directory and type 'nmake -f nt\Makefile.nt'.
428
+ − 92
+ − 93 cd to the libpng directory, rename or move the zlib directory to ..\zlib
817
+ − 94 and type 'nmake -f scripts\makefile.vcwin32'.
428
+ − 95
1780
+ − 96 3. If you want TIFF support, grab the latest version of libtiff (tiff-v3.5.7
+ − 97 as of 2003-10-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack
+ − 98 it somewhere. Then cd to the libtiff subdirectory of the tiff directory
+ − 99 and type 'nmake -f makefile.vc'.
428
+ − 100
827
+ − 101 4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b as
1780
+ − 102 of 2003-10-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the
442
+ − 103 README for details on how to build it.
428
+ − 104
1780
+ − 105 5. If you want X-Face support, grab the latest version of the compface
+ − 106 distribution (1.4 as of 2003-10-27) from
442
+ − 107 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack it somewhere.
1780
+ − 108 Copy nt\compface.mak from the xemacs sources to the compface directory.
442
+ − 109 cd to that directory and build libcompface with 'nmake -f compface.mak'.
428
+ − 110
+ − 111
442
+ − 112 * Building
+ − 113 ==========
+ − 114
+ − 115 1. cd to the nt subdirectory of the xemacs distribution and copy the file
+ − 116 config.inc.samp to config.inc. Make any necessary modifications. This
+ − 117 file controls the options that XEmacs is built with:
+ − 118
+ − 119 -- If you want international (aka "Mule") support, modify the appropriate
+ − 120 line in config.inc as follows:
+ − 121
771
+ − 122 MULE=1
428
+ − 123
442
+ − 124 -- If you're building with XPM support, modify the appropriate lines in
+ − 125 config.inc as follows:
+ − 126
+ − 127 HAVE_XPM=1
+ − 128 XPM_DIR="x:\location\of\your\xpm\sources"
+ − 129
+ − 130 and similarly for JPEG and TIFF support.
428
+ − 131
442
+ − 132 -- If you're building with PNG support, modify the appropriate lines in
+ − 133 config.inc as follows:
+ − 134
+ − 135 HAVE_PNG=1
+ − 136 PNG_DIR="x:\location\of\your\png\sources"
+ − 137 ZLIB_DIR="x:\location\of\your\zlib\sources"
+ − 138
+ − 139 -- If you're building with GIF support, modify the appropriate lines in
+ − 140 config.inc as follows:
+ − 141
+ − 142 HAVE_GIF=1
428
+ − 143
442
+ − 144 -- If you're building with X-Face support, modify the appropriate lines in
+ − 145 config.inc as follows:
+ − 146
+ − 147 HAVE_XFACE=1
+ − 148 COMPFACE_DIR="x:\location\of\your\compface\sources"
+ − 149
+ − 150 -- By default, XEmacs will expect to find its packages in the
+ − 151 subdirectories "site-packages", "mule-packages" and "xemacs-packages"
+ − 152 under the directory "c:\Program Files\XEmacs". If you want it to look
+ − 153 for these subdirectories elsewhere, modify the appropriate lines in
+ − 154 config.inc as follows:
428
+ − 155
442
+ − 156 PACKAGE_PREFIX="x:\your\package\directory"
+ − 157
+ − 158 Make sure that the directory pointed to by PACKAGE_PREFIX contains
+ − 159 the xemacs-packages directory into which you installed the packages.
+ − 160
+ − 161 -- XEmacs can build its info files more quickly if you have a copy of the
+ − 162 makeinfo program. If you have a copy, modify the appropriate lines in
+ − 163 config.inc as follows:
+ − 164
+ − 165 MAKEINFO="x:\location\of\makeinfo.exe"
+ − 166
+ − 167 If you don't have a copy of makeinfo then you'll need to have installed
+ − 168 the XEmacs texinfo package.
+ − 169
+ − 170 2. If you want to install XEmacs when you build it, modify the appropriate
+ − 171 lines in config.inc as follows (you can also run XEmacs from its build
+ − 172 directory):
+ − 173
+ − 174 INSTALL_DIR="x:\your\installation\directory"
428
+ − 175
442
+ − 176 (By default, XEmacs will be installed in directories under the directory
827
+ − 177 "c:\Program Files\XEmacs\XEmacs-21.5".)
442
+ − 178
1330
+ − 179 3. If you want the built files to go into a different tree than the source
+ − 180 tree (e.g. this allows you to build multiple versions of XEmacs, with
+ − 181 different configuration settings, from the same source tree), use the
+ − 182 script `make-build-dir' to create a skeleton build tree, create a
+ − 183 config.inc in that tree, and then run nmake from that tree. This is
+ − 184 similar to running `configure --srcdir=PATH' under Unix. See the
+ − 185 comments in `config.inc.samp' for more information.
+ − 186
+ − 187 4. If you want to build xemacs on the command line, use
442
+ − 188 `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want
+ − 189 to run XEmacs from its build directory. nmake will build temacs, the DOC
+ − 190 file, update the elc's, dump xemacs and (optionally) install the relevant
+ − 191 files in the directories under the installation directory.
+ − 192
+ − 193 If you chose to install XEmacs, the file that you should run to start
+ − 194 XEmacs will be installed (by default) as
827
+ − 195 "c:\Program Files\XEmacs\XEmacs-21.5\i586-pc-win32\xemacs.exe".
442
+ − 196
827
+ − 197 To run from the build directory, run the file "src\xemacs.exe" off of the
442
+ − 198 root of the build directory.
+ − 199
+ − 200 You may want to create a shortcut to the file from your Desktop or
+ − 201 Start Menu.
+ − 202
1330
+ − 203 5. To build using MS Visual Studio, you can use the workspace file
827
+ − 204 `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you have a
+ − 205 different version and neither file works, just open up `nt/xemacs.mak'
900
+ − 206 from within Visual Studio and it will offer to wrap this Makefile in a
+ − 207 workspace file, from which you can build. Assuming you want to run from
+ − 208 the build directory (which you will want to do if you are planning on
+ − 209 doing any development work on XEmacs), use the following settings in
827
+ − 210 Project/Settings...:
442
+ − 211
+ − 212 Under the General tab:
+ − 213
+ − 214 Build command line: NMAKE /f xemacs.mak
+ − 215 Output file name: ..\src\xemacs.exe
+ − 216 Browse info file name: ..\src\temacs.bsc
+ − 217
+ − 218 Under the Debug tab:
428
+ − 219
442
+ − 220 Executable for debug session: ..\src\xemacs.exe
+ − 221
+ − 222
+ − 223 If you want to install XEmacs when it's built, change the build command
+ − 224 line to "NMAKE install /f xemacs.mak". (You will have to make the same
+ − 225 change even if you use the provided workspace nt/xemacs.dsw.)
+ − 226
+ − 227
+ − 228 * Debugging under MS Developer Studio
+ − 229 =====================================
+ − 230
+ − 231 The build process always creates debugging and "Source Browser" information
+ − 232 in the source tree for use with DevStudio. However that information is not
+ − 233 very useful unless you build a debug version of XEmacs:
+ − 234
+ − 235 1. Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild.
+ − 236
+ − 237 2. See instructions above for obtaining a workspace file for use with
+ − 238 MS Developer Studio. Build and debug your XEmacs this way.
+ − 239
+ − 240 3. To display the contents of a lisp variable, type Shift-F9 (or use the
1203
+ − 241 menu) to bring up the QuickWatch window, type dp(variable) and click
+ − 242 Recalculate. The output will appear in a console window, as well as in
+ − 243 the Debug window in MS Developer Studio.
442
+ − 244
1203
+ − 245 4. To display a current Lisp backtrace, type db() in the QuickWatch window,
+ − 246 as in the previous item.
+ − 247
+ − 248 5. To view Lisp variables in the "Watch" window wrap the variable in one of
442
+ − 249 the helper functions from the file src\console-msw.c, for example type
+ − 250 DSTRING(variable) in the "Watch" window to inspect a Lisp string.
+ − 251
1203
+ − 252 6. For further information on debugging XEmacs, see the item
+ − 253 `How to Debug an XEmacs problem with a debugger' in the XEmacs FAQ.
+ − 254
442
+ − 255
+ − 256 * Known Problems
+ − 257 ================
+ − 258
+ − 259 Please look at the PROBLEMS file for known problems. Any other problems you
+ − 260 need clarified, please email us and we will endeavour to provide any
+ − 261 assistance we can:
428
+ − 262
+ − 263 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
+ − 264 Subscribe address: xemacs-nt-request@xemacs.org
+ − 265
442
+ − 266 Ben Wing (current primary MS Windows maintainer; author of the MS Windows
+ − 267 Mule code and some of the dialog box code)
+ − 268 Andy Piper (MS Windows contributor; author of the Cygwin support and the
+ − 269 MS Windows glyph and widget code)
+ − 270 Jonathan Harris (MS Windows contributor; author of the MS Windows redisplay
+ − 271 and underlying GUI code)
+ − 272 Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
+ − 273 and printing code and some of the dialog box code;
+ − 274 general guru on obscure MS Windows programming topics)
+ − 275 David Hobley (early MS Windows contributor)
+ − 276 Marc Paquette (early MS Windows contributor)
+ − 277 August Hill (early MS Windows contributor)
428
+ − 278
+ − 279 and others.