annotate nt/README @ 938:0391335b65dc

[xemacs-hg @ 2002-07-31 07:14:49 by michaels] 2002-07-17 Marcus Crestani <crestani@informatik.uni-tuebingen.de> Markus Kaltenbach <makalten@informatik.uni-tuebingen.de> Mike Sperber <mike@xemacs.org> configure flag to turn these changes on: --use-kkcc First we added a dumpable flag to lrecord_implementation. It shows, if the object is dumpable and should be processed by the dumper. * lrecord.h (struct lrecord_implementation): added dumpable flag (MAKE_LRECORD_IMPLEMENTATION): fitted the different makro definitions to the new lrecord_implementation and their calls. Then we changed mark_object, that it no longer needs a mark method for those types that have pdump descritions. * alloc.c: (mark_object): If the object has a description, the new mark algorithm is called, and the object is marked according to its description. Otherwise it uses the mark method like before. These procedures mark objects according to their descriptions. They are modeled on the corresponding pdumper procedures. (mark_with_description): (get_indirect_count): (structure_size): (mark_struct_contents): These procedures still call mark_object, this is needed while there are Lisp_Objects without descriptions left. We added pdump descriptions for many Lisp_Objects: * extents.c: extent_auxiliary_description * database.c: database_description * gui.c: gui_item_description * scrollbar.c: scrollbar_instance_description * toolbar.c: toolbar_button_description * event-stream.c: command_builder_description * mule-charset.c: charset_description * device-msw.c: devmode_description * dialog-msw.c: mswindows_dialog_id_description * eldap.c: ldap_description * postgresql.c: pgconn_description pgresult_description * tooltalk.c: tooltalk_message_description tooltalk_pattern_description * ui-gtk.c: emacs_ffi_description emacs_gtk_object_description * events.c: * events.h: * event-stream.c: * event-Xt.c: * event-gtk.c: * event-tty.c: To write a pdump description for Lisp_Event, we converted every struct in the union event to a Lisp_Object. So we created nine new Lisp_Objects: Lisp_Key_Data, Lisp_Button_Data, Lisp_Motion_Data, Lisp_Process_Data, Lisp_Timeout_Data, Lisp_Eval_Data, Lisp_Misc_User_Data, Lisp_Magic_Data, Lisp_Magic_Eval_Data. We also wrote makro selectors and mutators for the fields of the new designed Lisp_Event and added everywhere these new abstractions. We implemented XD_UNION support in (mark_with_description), so we can describe exspecially console/device specific data with XD_UNION. To describe with XD_UNION, we added a field to these objects, which holds the variant type of the object. This field is initialized in the appendant constructor. The variant is an integer, it has also to be described in an description, if XD_UNION is used. XD_UNION is used in following descriptions: * console.c: console_description (get_console_variant): returns the variant (create_console): added variant initialization * console.h (console_variant): the different console types * console-impl.h (struct console): added enum console_variant contype * device.c: device_description (Fmake_device): added variant initialization * device-impl.h (struct device): added enum console_variant devtype * objects.c: image_instance_description font_instance_description (Fmake_color_instance): added variant initialization (Fmake_font_instance): added variant initialization * objects-impl.h (struct Lisp_Color_Instance): added color_instance_type * objects-impl.h (struct Lisp_Font_Instance): added font_instance_type * process.c: process_description (make_process_internal): added variant initialization * process.h (process_variant): the different process types
author michaels
date Wed, 31 Jul 2002 07:14:49 +0000
parents 26137a2aa3bb
children 5f2f8dcbfb3e
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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 David Hobley
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
4 Marc Paquette
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
5 Jonathan Harris
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
6 Ben Wing
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
8 This is a port of XEmacs to Windows 95/98/NT/2000/XP. If you are looking for a
916
26137a2aa3bb [xemacs-hg @ 2002-07-10 06:27:41 by stephent]
stephent
parents: 900
diff changeset
9 port of GNU Emacs, get the latest release of the 21.x series from gnu.org.
26137a2aa3bb [xemacs-hg @ 2002-07-10 06:27:41 by stephent]
stephent
parents: 900
diff changeset
10 (At the time of writing, GNU Emacs does not support images but does support
26137a2aa3bb [xemacs-hg @ 2002-07-10 06:27:41 by stephent]
stephent
parents: 900
diff changeset
11 Mule.) NT 4.0 or later is required for building on Windows NT. Note that the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
12 developers typically use NT 4.0 and Windows 2000, and there may possibly be
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
13 problems under Windows 95/98. If so, please report them to
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
14 xemacs-nt@xemacs.org; we are committed to maintaining compatibility with all
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
15 systems listed.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
17 * Required tools and sources
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
18 ============================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
19
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
20 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
21 everything.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
23 Note that Visual C++ assumes that the environment variables INCLUDE and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
24 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
25 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
26 vc\bin and sharedide\bin directories.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
27
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
28 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
29 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
30 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
31 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
32 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
33 which is generally a good idea.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
35 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
36 $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
37 automatically set these environment variables up in the registry.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
38
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
39 2. Grab the latest XEmacs source from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
40
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
41 ftp://ftp.xemacs.org/pub/xemacs/
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
42
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
43 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
44
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
45 (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
46 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
47
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
48 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
49 packages bundle from
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 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
52
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
53 If you are building with international support, you also need
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
54
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
55 ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-mule-sumo.tar.gz
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
56
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
57 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
58 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
59 short on disk space. You can find the various packages in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
60 ftp://ftp.xemacs.org/pub/xemacs/packages/. You will need the xemacs-base
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
61 package (and mule-base, if building with international support). You'll
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
62 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
63 your machine. If you want to download additional or updated packages
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
64 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
65 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
66 cc-mode, prog-modes and xemacs-devel packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
67
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
68 Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages",
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
69 for example "c:\Program Files\XEmacs\xemacs-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 3. At this point you can choose to build for X and/or for Win32 native GUI.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
72 If you only want to build for the Win32 native GUI then skip the next
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
73 section.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
74
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
75
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
76 ** Extra tools and sources required for X
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
78 NOTE: XEmacs has not been tested with X support under the native
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
79 Windows build for a long, long time! It may not even compile any
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
80 more. If you are interested in X support, you're better off compiling
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
81 the Cygwin version of XEmacs, which can handle both Win32 native and X
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
82 frames (in the same binary, in fact, but not at the same time), and is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
83 actively tested with X support.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
84
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
85 If you want support for X you will also need:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
86
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
87 1. An X server. XEmacs has been tested and runs well under MI/X,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
88 available from: http://www.microimages.com/mix/. (International aka
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
89 "Mule" support even works under this X server!) Unfortunately, this is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
90 not free, but is trialware; you have to pay $25 if you want to use it
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
91 for more than 15 days. XEmacs also runs (barely) under the free XWin
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
92 server that comes as part of the Cygwin XFree86 package, available at
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
93
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
94 ftp://sources.redhat.com/pub/cygwin/xfree/
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
95
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
96 or numerous mirrors, such as
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
97
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
98 ftp://ftp.freesoftware.com/pub/sourceware/cygwin/xfree/
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
100 There are numerous other X servers available in the same package or at
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
101 the same location, but unfortunately most of them behave even worse
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
102 than XWin. If you have any luck with any of these, *PLEASE* email
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
103 the maintainers at xemacs-nt@xemacs.org, and we'll add the info here.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
104
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
105 2. Source for the MIT X11R6.3 libraries, available from ftp.x.org.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
106
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
107 3. You'll need to compile the MIT libraries without multi-thread support.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
108 To do this, there is an example Win32.cf and site.def provided which set
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
109 the relevant flags. You will also need to apply the patch in nt/X11.patch
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
110 in the xc/lib/X11 directory which will fix the DLL definition file.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
112 Once compiled and installed, you will need to apply the patch in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
113 nt/Xmd.patch. This is messy and better solutions would be appreciated.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
114
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
115 4. Goto step 2 under 'Optional libraries' below.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
116
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
117
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
118 * Optional libraries
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
119 ====================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
120
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
121 1. You really want the XPM library. Grab the latest version of the xpm
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
122 sources (xpm-3.4k.tar.gz as of 2002-04-27) from
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
123 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere. Copy
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
124 nt\xpm.mak from the xemacs sources to the lib subdirectory of the xpm
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
125 sources, cd to that directory and build xpm with 'nmake -f xpm.mak'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
127 2. You probably also want PNG image support. Grab the latest versions of
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
128 zlib and libpng (zlib-1.1.4 and libpng-1.0.9 as of 2002-04-27) from
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
129 ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read the
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
130 respective READMEs for details on how to build them. The following
817
ece8c2170578 [xemacs-hg @ 2002-04-23 00:44:29 by jhar]
jhar
parents: 812
diff changeset
131 build procedure works for zlib-1.1.4 and libpng-1.0.9:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
817
ece8c2170578 [xemacs-hg @ 2002-04-23 00:44:29 by jhar]
jhar
parents: 812
diff changeset
133 cd to the zlib directory and type 'nmake -f msdos\makefile.w32'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 cd to the libpng directory, rename or move the zlib directory to ..\zlib
817
ece8c2170578 [xemacs-hg @ 2002-04-23 00:44:29 by jhar]
jhar
parents: 812
diff changeset
136 and type 'nmake -f scripts\makefile.vcwin32'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 3. If you want TIFF support, grap the latest version of libtiff (tiff-v3.4
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
139 as of 2002-04-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
140 it somewhere. Copy nt\tiff.mak from the xemacs sources to the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
141 contrib\winnt subdirectory of the tiff sources, cd to that directory and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
142 build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
143 verified to work under WinNT, not Win95 or 98. However, the latest
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
144 distribution of libtiff includes a contrib\win95\makefile.w95; that
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
145 might work.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
147 4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b as
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
148 of 2002-04-27) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
149 README for details on how to build it.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
151 5. If you want X-Face support, grab the compface distribution from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
152 ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack it somewhere.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
153 Copy nt\compface.mak from xemacs sources to the compface directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
154 cd to that directory and build libcompface with 'nmake -f compface.mak'.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
157 * Building
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
158 ==========
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
159
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
160 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
161 config.inc.samp to config.inc. Make any necessary modifications. This
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
162 file controls the options that XEmacs is built with:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
163
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
164 -- If you want international (aka "Mule") support, modify the appropriate
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
165 line in config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
166
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
167 MULE=1
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
169 -- If you're building with XPM support, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
170 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
171
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
172 HAVE_XPM=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
173 XPM_DIR="x:\location\of\your\xpm\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
174
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
175 and similarly for JPEG and TIFF support.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
177 -- If you're building with PNG support, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
178 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
179
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
180 HAVE_PNG=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
181 PNG_DIR="x:\location\of\your\png\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
182 ZLIB_DIR="x:\location\of\your\zlib\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
183
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
184 -- If you're building with GIF support, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
185 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
186
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
187 HAVE_GIF=1
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
189 -- If you're building with X-Face support, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
190 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
191
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
192 HAVE_XFACE=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
193 COMPFACE_DIR="x:\location\of\your\compface\sources"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
194
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
195 -- If you're building for X, modify the appropriate lines in config.inc
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
196 as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
197
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
198 HAVE_X_WINDOWS=1
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
199 X11_DIR=x:\root\directory\of\your\X11\installation
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 -- By default, XEmacs will expect to find its packages in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
202 subdirectories "site-packages", "mule-packages" and "xemacs-packages"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
203 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
204 for these subdirectories elsewhere, modify the appropriate lines in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
205 config.inc as follows:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
207 PACKAGE_PREFIX="x:\your\package\directory"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
208
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
209 Make sure that the directory pointed to by PACKAGE_PREFIX contains
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
210 the xemacs-packages directory into which you installed the packages.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
211
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
212 -- 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
213 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
214 config.inc as follows:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
215
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
216 MAKEINFO="x:\location\of\makeinfo.exe"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
217
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
218 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
219 the XEmacs texinfo package.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
220
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
221 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
222 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
223 directory):
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
224
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
225 INSTALL_DIR="x:\your\installation\directory"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
227 (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
228 "c:\Program Files\XEmacs\XEmacs-21.5".)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
229
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
230 3. If you want to build xemacs on the command line, use
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
231 `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
232 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
233 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
234 files in the directories under the installation directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
235
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
236 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
237 XEmacs will be installed (by default) as
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
238 "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
239
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
240 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
241 root of the build directory.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
242
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
243 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
244 Start Menu.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
245
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
246 4. To build using MS Visual Studio, you can use the workspace file
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
247 `nt/xemacs.dsw'. This was prepared for Visual C++ 6.0. If you have a
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
248 different version and neither file works, just open up `nt/xemacs.mak'
900
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
249 from within Visual Studio and it will offer to wrap this Makefile in a
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
250 workspace file, from which you can build. Assuming you want to run from
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
251 the build directory (which you will want to do if you are planning on
ac5c14a317f1 [xemacs-hg @ 2002-07-05 19:18:54 by jhar]
jhar
parents: 827
diff changeset
252 doing any development work on XEmacs), use the following settings in
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 817
diff changeset
253 Project/Settings...:
442
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 Under the General tab:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
256
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
257 Build command line: NMAKE /f xemacs.mak
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
258 Output file name: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
259 Browse info file name: ..\src\temacs.bsc
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
260
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
261 Under the Debug tab:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
263 Executable for debug session: ..\src\xemacs.exe
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
264
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
265
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
266 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
267 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
268 change even if you use the provided workspace nt/xemacs.dsw.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
269
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 * Debugging under MS Developer Studio
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
272 =====================================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
273
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
274 The build process always creates debugging and "Source Browser" information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
275 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
276 very useful unless you build a debug version of XEmacs:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
277
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
278 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
279
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
280 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
281 MS Developer Studio. Build and debug your XEmacs this way.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
282
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
283 3. To display the contents of a lisp variable, type Shift-F9 (or use the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
284 menu) to bring up the QuickWatch window, type debug_print(variable) and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
285 click Recalculate. The output will appear in a console window, as well
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
286 as in the Debug window in MS Developer Studio.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
287
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
288 4. To view Lisp variables in the "Watch" window wrap the variable in one of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
289 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
290 DSTRING(variable) in the "Watch" window to inspect a Lisp string.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
291
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
292
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
293 * Known Problems
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
294 ================
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
295
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
296 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
297 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
298 assistance we can:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
299
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
300 The XEmacs NT Mailing List: xemacs-nt@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
301 Subscribe address: xemacs-nt-request@xemacs.org
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
302
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
303 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
304 Mule code and some of the dialog box code)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
305 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
306 MS Windows glyph and widget code)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
307 Jonathan Harris (MS Windows contributor; author of the MS Windows redisplay
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
308 and underlying GUI code)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
309 Kirill Katsnelson (MS Windows contributor; author of the MS Windows process
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
310 and printing code and some of the dialog box code;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
311 general guru on obscure MS Windows programming topics)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
312 David Hobley (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
313 Marc Paquette (early MS Windows contributor)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
314 August Hill (early MS Windows contributor)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
315
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
316 and others.