annotate nt/README @ 2951:b694dfd2f40e

[xemacs-hg @ 2005-09-26 08:13:00 by ben] Compile Windows with gmp, ldap, postgresql, db, etc. README: Major rewrite. Document how to compile various optional libs. config.inc.samp: Update to recent versions of optional libs. Add support for gmp, db, postgresql, ldap. Turn on optimization when not debug. minitar.c: Include config.h. xemacs.mak: Figure out VC++ version and use it to set debug and browser flags appropriately. Add support for building gmp, db, postgresql, ldap. Rewrite handling of optional stuff so it is all added to single variables OPT_* rather than to various FOO_* variables. Pass -I$(SRC) to minitar.c so it compiles. Pass module sources, not objects, to make-docfile. Delete more stuff in `make clean'.
author ben
date Mon, 26 Sep 2005 08:13:00 +0000
parents 3227a97effa8
children 1cecc3e9f0a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
1 Building and Installing XEmacs on Windows 95/98/NT/2000/XP -*- mode:outline -*-
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
3 Ben Wing
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
4
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
5 based on old version by
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
6
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 David Hobley
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
8 Marc Paquette
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
9 Jonathan Harris
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
11 This is a port of XEmacs to Windows 95/98/ME/NT/2000/XP. If you are
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
12 looking for a port of GNU Emacs, get the latest release of the 21.x series
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
13 from gnu.org. NT 4.0 or later is required for building on Windows NT.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
14 Note that the developers typically use NT 4.0 and Windows 2000 or XP, and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
15 there may possibly be problems under Windows 95/98. (One developer has
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
16 successfully built on Windows ME, though, which is the successor of Windows
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
17 98.) If so, please report them to xemacs-nt@xemacs.org; we are committed
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
18 to maintaining compatibility with all systems listed.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
20 * Required tools and sources
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
21 ============================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
22
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
23 1. You will need Visual C++ V6.0, Visual Studio .NET or later to compile
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
24 everything.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
26 Note that Visual C++ assumes that the environment variables INCLUDE and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
27 LIB are set to specify the location of the includes and libraries.
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
28 Your PATH environment variable also needs to include the Visual Studio
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
29 vc\bin and sharedide\bin directories.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
30
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
31 Visual C++ V6.0 installs a batch file called vcvars32.bat in
812
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
32 c:\Program Files\Microsoft Visual Studio\VC98\bin\ (or wherever you
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
33 installed it) that you can run before building to set up all of these
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
34 environment variables. Alternatively, you can choose at setup time to
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
35 have these environment variables automatically set up in the registry,
f846c2ef930d [xemacs-hg @ 2002-04-13 20:31:27 by jhar]
jhar
parents: 771
diff changeset
36 which is generally a good idea.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
38 Visual Studio .NET calls this batch file vsvars32.bat and installs it in
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
39 $Installdir\Common7\Tools, but doesn't offer at install time to
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
40 automatically set these environment variables up in the registry.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
41
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
42 2. Grab the latest XEmacs source from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
43
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
44 http://ftp.xemacs.org/pub/xemacs/
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
45
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
46 or one of its mirrors listed at http://www.xemacs.org/Download/index.html.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
47
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
48 (NOTE: If you are behind a firewall and have problems with FTP access,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
49 the URL http://ftp.xemacs.org/pub/xemacs/ works just as well.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
50
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
51 You'll also need the packages. You probably want to get the unified
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
52 packages bundle from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
53
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
54 http://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
55
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
56 If you are building with international support, you also need
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
57
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
58 http://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
59
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
60 Although we don't recommend it, you can also retrieve just the packages
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
61 you really need if you have an extremely slow net connection or are very
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
62 short on disk space. You can find the various packages in
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
63 http://ftp.xemacs.org/pub/xemacs/packages/. You will need the xemacs-base
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
64 package (and mule-base, if building with international support). You'll
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
65 also need the texinfo package unless you have a copy of makeinfo.exe on
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
66 your machine. If you want to download additional or updated packages
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
67 from within XEmacs you'll need the efs, dired and vm packages. You'll
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
68 probably also want at least the edit-utils, text-modes, fsf-compat,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
69 cc-mode, prog-modes and xemacs-devel packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
70
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
71 Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
72 for example "c:\Program Files\XEmacs\xemacs-packages".
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
73
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
74 3. The native build no longer supports X Windows. There is no point,
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
75 since the Cygwin build is actively maintained and supports X Windows
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
76 very well. See the FAQ if you want to build with Cygwin.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
77
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
78
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
79 * Optional libraries
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
80 ====================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
81
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
82 The easiest way to get the optional libraries is to grab the appropriate
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
83 set of precompiled versions for your compiler:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
84
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
85 http://www.xemacs.org/Download/win32/optional-libs.exe
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
86
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
87 or for VC++ 2005 (VC8)
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
88
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
89 http://www.xemacs.org/Download/win32/optional-libs-vc8.exe
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
90
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
91 unpack them somewhere and set the OPTIONAL_LIBRARY_DIR in config.inc
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
92 to point to where you put them. This will automatically give you
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
93 all the graphics libraries. (NOTE: optional-libs.exe was compiled with
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
94 VC++ .NET and may or may not work with VC++ 6.0. If not, you will have
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
95 to build them yourself until we provide VC6 binaries.)
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
96
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
97 * Alternative: Building the optional libraries yourself
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
98 =======================================================
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
99
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
100 If you need to build the libraries yourself, grab them from
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
101 http://ftp.xemacs.org/pub/xemacs/aux or get the latest version from the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
102 home page of the appropriate library, as listed on
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
103 http://www.xemacs.org/Download/optLibs.html. The following instructions
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
104 assume that you have the appropriate libraries and have unpacked them
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
105 somewhere, e.g. c:\src.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
107 Directions for building the various libraries:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
108
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
109 1. You really want the XPM library. Copy nt\xpm.mak from the xemacs sources
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
110 to the lib/ subdirectory of the XPM sources, cd to that directory and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
111 build xpm with 'nmake -f xpm.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
112
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
113 2. You probably also want PNG image support. Get PNG and ZLIB and read the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
114 respective READMEs for details on how to build them.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
115
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
116 cd to the ZLIB source directory and type 'nmake -f win32\Makefile.msc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
117
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
118 cd to the libpng source directory, rename or move the zlib directory to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
119 ..\zlib and type 'nmake -f scripts\makefile.vcawin32'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
121 3. If you want TIFF support, cd to the TIFF source directory and type
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
122 'nmake -f Makefile.vc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
123
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
124 4. If you want JPEG support, cd to the JPEG source directory and type
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
125 'nmake -f makefile.vc'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
126
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
127 5. If you want X-Face support, copy nt\compface.mak from the xemacs sources
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
128 to the compface directory, cd to that directory and build libcompface
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
129 with 'nmake -f compface.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
130
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
131 6. It's also possible to build the Sleepycat DB libraries. Open up the file
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
132
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
133 DB-SOURCE-DIR\docs\ref\build_win\intro.html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
135 in a browser, where DB-SOURCE-DIR is the top-level source directory for
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
136 the Sleepcat DB libraries, and follow the directions. You should build the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
137 `Release_static' target if you want to use the static version of this
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
138 library, or the `Release' target if you want to use the DLL version of
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
139 the library. To use the DLL version, you need to set BUILD_DATABASE_SHARED
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
140 to 1 in config.inc. The DLL version will make the executable much smaller,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
141 but you will have to have the DLL present at run-time -- either in the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
142 same directory as the XEmacs executable or somewhere in your path.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
144 7. It's possible, but difficult, to build shared libraries for GNU MP.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
145 (Static libraries are not yet possible, as there is no makefile.vc for
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
146 this; you can't build static libraries for VC++ using MinGW.) Basically,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
147 you need to build using MinGW and then generate native import libraries.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
148 This is more or less described in the documentation, but the following
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
149 procedure seems to work:
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
150
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
151 -- In the top level of the GMP sources, configure using
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
152
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
153 CC='gcc -mno-cygwin' configure --build=pentium3-pc-mingw32 --disable-static --enable-shared
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
154
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
155 -- Edit the `libtool' script in the same directory and change the value
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
156 of CC from `gcc' to `gcc -mno-cygwin'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
157
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
158 -- Run `make'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
159
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
160 -- Run these commands:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
162 lib /machine:IX86 /def:.libs/libgmp-3.dll-def
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
163 cp .libs/libgmp-3.dll-exp libgmp-3.exp
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
164 cp .libs/libgmp-3.dll .
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
165
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
166 -- You should now have an import library named libgmp-3.lib and a DLL
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
167 libgmp-3.dll.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
168
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
169 -- NOTE: You will need to have this DLL accessible when XEmacs runs.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
170 It either needs to be in the same directory as the XEmacs executable
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
171 or in your path.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
172
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
173 8. There are also pre-built binaries for GMP-4.1.2 at
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
174
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
175 http://www.cs.nyu.edu/exact/core/gmp/.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
177 However, they don't seem to work properly for our purposes, as they
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
178 require LIBC.LIB rather than MSVCRT.DLL.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
179
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
180 9. You can build the client library for PostgreSQL by cd'ing to the src/
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
181 subdirectory of the PostgreSQL sources and running `nmake -f win32.mak'.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
182
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
183 10. It does not appear to be very easy to build OpenLDAP under
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
184 native MS Windows, as it is only experimentally supported. However, there
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
185 is a mailing list for this, which contains postings of recent binaries and
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
186 build patches; see
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
187
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
188 http://lucas.bergmans.us/hacks/openldap/
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
189
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
190 If you know how to build OpenLDAP, please write up a description of the
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
191 process and send it to us at xemacs-beta@xemacs.org.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
194 * Building
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
195 ==========
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
196
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
197 1. cd to the nt subdirectory of the xemacs distribution and copy the file
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
198 config.inc.samp to config.inc. Make any necessary modifications. This
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
199 file controls the options that XEmacs is built with:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
200
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
201 -- If you want international (aka "Mule") support, modify the appropriate
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
202 line in config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
203
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
204 MULE=1
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
206 -- If you're using the pre-supplied optional library pack, all you should
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
207 have to do is set OPTIONAL_LIBRARY_DIR to the top-level directory
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
208 where you unpacked everything.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
209
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
210 -- By default, support is enabled for all graphics formats, but not
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
211 currently for any of the other libraries in the optional library
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
212 pack. If you want support for GMP, Berkeley DB or PostgreSQL, set
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
213 the appropriate flag (HAVE_BIGNUM, HAVE_DATABASE or HAVE_POSTGRESQL,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
214 respectively) to 1. We do not currently enable these by default
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
215 because of lack of sufficient testing, questionable usefulness in
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
216 the case of Berkeley DB and PostgreSQL, excessive library size in
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
217 the case of Berkeley DB (more than 2 MB for the static library!),
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
218 and lack of a static library in the case of GMP.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
219
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
220 -- If you want to turn off support for any of the graphics libraries,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
221 set the appropriate flag (HAVE_XPM, HAVE_GIF, HAVE_PNG, HAVE_JPEG,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
222 HAVE_TIFF or HAVE_XFACE) to 0.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
223
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
224 -- If you have compiled some of the libraries yourself, you will have to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
225 specify the location of the top-level source directory for each of
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
226 these libraries. XEmacs assumes that the directory structure under
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
227 these directories is as it is in the sources, rather than in any
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
228 installed format.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
229
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
230 For example, for XPM support, modify the appropriate lines in
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
231 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
232
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
233 HAVE_XPM=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
234 XPM_DIR="x:\location\of\your\xpm\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
235
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
236 Similarly for JPEG, TIFF, etc. support.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
237
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
238 For PNG support, you also need to specify ZLIB_DIR.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
239 For GIF support, no directory is necessary as the appropriate code
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
240 is already in XEmacs.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
242 If you want to use the DLL version of the Sleepycat DB library,
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
243 set BUILD_DATABASE_SHARED to 1. You will have to have the DLL
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
244 present at run-time -- either in the same directory as the XEmacs
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
245 executable or somewhere in your path.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
246
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
247 -- By default, XEmacs will expect to find its packages in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
248 subdirectories "site-packages", "mule-packages" and "xemacs-packages"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
249 under the directory "c:\Program Files\XEmacs". If you want it to look
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
250 for these subdirectories elsewhere, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
251 config.inc as follows:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
253 PACKAGE_PREFIX="x:\your\package\directory"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
254
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
255 Make sure that the directory pointed to by PACKAGE_PREFIX contains
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
256 the xemacs-packages directory into which you installed the packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
257
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
258 -- XEmacs can build its info files more quickly if you have a copy of the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
259 makeinfo program. If you have a copy, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
260 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
261
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
262 MAKEINFO="x:\location\of\makeinfo.exe"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
263
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
264 If you don't have a copy of makeinfo then you'll need to have installed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
265 the XEmacs texinfo package.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
266
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
267 2. If you want to install XEmacs when you build it, modify the appropriate
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
268 lines in config.inc as follows (you can also run XEmacs from its build
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
269 directory):
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
270
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
271 INSTALL_DIR="x:\your\installation\directory"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
273 (By default, XEmacs will be installed in directories under the directory
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
274 "c:\Program Files\XEmacs\XEmacs-21.5".)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
275
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
276 3. If you want the built files to go into a different tree than the source
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
277 tree (e.g. this allows you to build multiple versions of XEmacs, with
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
278 different configuration settings, from the same source tree), use the
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
279 script `make-build-dir' to create a skeleton build tree, create a
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
280 config.inc in that tree, and then run nmake from that tree. This is
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
281 similar to running `configure --srcdir=PATH' under Unix. See the
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
282 comments in `config.inc.samp' for more information.
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
283
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
284 4. If you want to build xemacs on the command line, use
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
285 `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
286 to run XEmacs from its build directory. nmake will build temacs, the DOC
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
287 file, update the elc's, dump xemacs and (optionally) install the relevant
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
288 files in the directories under the installation directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
289
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
290 If you chose to install XEmacs, the file that you should run to start
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
291 XEmacs will be installed (by default) as
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
292 "c:\Program Files\XEmacs\XEmacs-21.5\i586-pc-win32\xemacs.exe".
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
293
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
294 To run from the build directory, run the file "src\xemacs.exe" off of the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
295 root of the build directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
296
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
297 You may want to create a shortcut to the file from your Desktop or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
298 Start Menu.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
299
1330
4542b72c005e [xemacs-hg @ 2003-03-01 07:25:26 by ben]
ben
parents: 1203
diff changeset
300 5. To build using MS Visual Studio, you can use the workspace file
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
301 `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you are using
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
302 Visual Studio .NET, open this file up inside of it and it will offer to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
303 convert it to a .NET "solution" file. The same procedure should work
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
304 for newer versions of Visual Studio (e.g. Visual Studio 2005). If this
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
305 doesn't work (e.g. you are using Visual C++ 5 or even earlier), just
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
306 open up `nt/xemacs.mak' from within Visual Studio and it will offer to
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
307 wrap this Makefile in a workspace file, from which you can build.
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
308 Assuming you want to run from the build directory (which you will want
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
309 to do if you are planning on doing any development work on XEmacs), use
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
310 the following settings (for Visual C++ 6.0, at least) in
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
311 Project/Settings...:
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
312
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
313 Under the General tab:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
314
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
315 Build command line: NMAKE /f xemacs.mak
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
316 Output file name: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
317 Browse info file name: ..\src\temacs.bsc
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
318
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
319 Under the Debug tab:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
320
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
321 Executable for debug session: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
322
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
323
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
324 If you want to install XEmacs when it's built, change the build command
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
325 line to "NMAKE install /f xemacs.mak". (You will have to make the same
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
326 change even if you use the provided workspace nt/xemacs.dsw.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
327
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
328
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
329 * Debugging under MS Developer Studio
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
330 =====================================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
331
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
332 The build process always creates debugging and "Source Browser" information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
333 in the source tree for use with DevStudio. However that information is not
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
334 very useful unless you build a debug version of XEmacs:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
335
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
336 1. Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
337
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
338 2. See instructions above for obtaining a workspace file for use with
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
339 MS Developer Studio. Build and debug your XEmacs this way.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
340
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
341 3. To display the contents of a lisp variable, type Shift-F9 (or use the
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
342 menu) to bring up the QuickWatch window, type dp(variable) and click
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
343 Recalculate. The output will appear in a console window, as well as in
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
344 the Debug window in MS Developer Studio.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
345
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
346 4. To display a current Lisp backtrace, type db() in the QuickWatch window,
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
347 as in the previous item.
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
348
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
349 5. To view Lisp variables in the "Watch" window wrap the variable in one of
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
350 the helper functions from the file src\console-msw.c, for example type
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
351 DSTRING(variable) in the "Watch" window to inspect a Lisp string.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
352
1203
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
353 6. For further information on debugging XEmacs, see the item
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
354 `How to Debug an XEmacs problem with a debugger' in the XEmacs FAQ.
5f2f8dcbfb3e [xemacs-hg @ 2003-01-12 11:04:30 by michaels]
michaels
parents: 916
diff changeset
355
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
356
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
357 * Known Problems
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
358 ================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
359
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
360 Please look at the PROBLEMS file for known problems. Any other problems you
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
361 need clarified, please email us and we will endeavour to provide any
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
362 assistance we can:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
363
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
364 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
365 Subscribe address: xemacs-nt-request@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
366
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
367 Ben Wing (current primary MS Windows maintainer; author of the MS Windows
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
368 Mule code and some of the dialog box code)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
369 Andy Piper (MS Windows contributor; author of the Cygwin support and the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
370 MS Windows glyph and widget code)
2951
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
371 Jonathan Harris (MS Windows contributor; original author of the MS Windows
b694dfd2f40e [xemacs-hg @ 2005-09-26 08:13:00 by ben]
ben
parents: 1780
diff changeset
372 redisplay and underlying GUI code)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
373 Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
374 and printing code and some of the dialog box code;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
375 general guru on obscure MS Windows programming topics)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
376 David Hobley (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
377 Marc Paquette (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
378 August Hill (early MS Windows contributor)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
379
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
380 and others.