442
|
1 # -*- mode: makefile -*-
|
|
2
|
|
3 ############################################################################
|
1203
|
4 # Install options #
|
|
5 ############################################################################
|
442
|
6
|
|
7 INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING)
|
|
8
|
|
9 PACKAGE_PREFIX=c:\Program Files\XEmacs
|
|
10
|
|
11 ############################################################################
|
1203
|
12 # Compiled-in features: basic #
|
|
13 ############################################################################
|
442
|
14
|
771
|
15 # Multilingual support.
|
|
16 MULE=0
|
442
|
17
|
|
18 # Native MS Windows support.
|
|
19 HAVE_MS_WINDOWS=1
|
|
20
|
1330
|
21 # GTK support. Do NOT set this to 1; this does not currently work.
|
462
|
22 HAVE_GTK=0
|
|
23 GTK_DIR=
|
|
24
|
442
|
25 ############################################################################
|
1203
|
26 # Compiled-in features: graphics formats #
|
|
27 ############################################################################
|
442
|
28
|
2500
|
29 # Directory under which the optional libraries are placed. To make your
|
|
30 # life easy, just grab http://ftp.xemacs.org/aux/optional-libs.exe
|
|
31 # (a self-installing .ZIP) and unzip them into an appropriate directory
|
|
32 # (by default, c:\src). This gets you precompiled versions of all of
|
|
33 # the libraries below.
|
|
34 OPTIONAL_LIBRARY_DIR=c:\src
|
|
35
|
442
|
36 # Set this to enable XPM support (virtually mandatory), and specify
|
1261
|
37 # the directory containing xpm. Get the library from
|
2951
|
38 # http://ftp.xemacs.org/pub/xemacs/aux/xpm-3.4k.tar.gz, or the latest
|
|
39 # version (note that the library hasn't been updated in years) from
|
|
40 # http://www.inria.fr/koala/lehors/xpm.html.
|
442
|
41 HAVE_XPM=1
|
2500
|
42 XPM_DIR=$(OPTIONAL_LIBRARY_DIR)\xpm-3.4k
|
442
|
43
|
1261
|
44 # Set this to enable GIF support (built-in).
|
442
|
45 HAVE_GIF=1
|
|
46
|
2951
|
47 # Set this to enable PNG support (virtually mandatory), and specify the
|
|
48 # directories containing png and zlib. Get the latest version of PNG from
|
|
49 # http://www.libpng.org/pub/png/libpng.html. Get the latest version of ZLIB
|
|
50 # from http://www.gzip.org/zlib/. NOTE: In order to compile libpng, you will
|
|
51 # have to rename the zlib directory to just `zlib'. We don't do that here
|
|
52 # so we can preserve the version number, like for the other libraries.
|
442
|
53 HAVE_PNG=1
|
2500
|
54 PNG_DIR=$(OPTIONAL_LIBRARY_DIR)\libpng-1.2.8
|
2951
|
55 ZLIB_DIR=$(OPTIONAL_LIBRARY_DIR)\zlib-1.2.3
|
442
|
56
|
2500
|
57 # Set this to enable JPEG support (useful, but not necessary), and specify
|
|
58 # the directory containing jpeg. Get the latest version from
|
2951
|
59 # http://www.ijg.org/ or ftp://ftp.uu.net/graphics/jpeg/.
|
2500
|
60 HAVE_JPEG=1
|
|
61 JPEG_DIR=$(OPTIONAL_LIBRARY_DIR)\jpeg-6b
|
442
|
62
|
2500
|
63 # Set this to enable TIFF support (not very important), and specify the
|
|
64 # directory containing tiff. Get the latest version from
|
2951
|
65 # http://www.remotesensing.org/libtiff/.
|
2500
|
66 HAVE_TIFF=1
|
2951
|
67 TIFF_DIR=$(OPTIONAL_LIBRARY_DIR)\tiff-3.7.3
|
442
|
68
|
2500
|
69 # Set this to enable XFace support (not very important), and specify the
|
|
70 # directory containing compface. Get the library from
|
2561
|
71 # http://ftp.xemacs.org/aux/compface-1.5.1.tar.gz.
|
2500
|
72 HAVE_XFACE=1
|
2530
|
73 COMPFACE_DIR=$(OPTIONAL_LIBRARY_DIR)\compface-1.5.1
|
442
|
74
|
2951
|
75 # Set this to enable bignum support (useful, but not necessary), and specify
|
|
76 # the directory containing GNU MP. Get the latest version from
|
|
77 # http://www.swox.com/gmp/.
|
|
78 HAVE_BIGNUM=0
|
|
79 BIGNUM_DIR=$(OPTIONAL_LIBRARY_DIR)\gmp-4.1.4
|
|
80
|
|
81 # Set this to enable Berkeley DB support (not very important), and specify
|
|
82 # the directory containing Sleepcat DB. Get the latest version from
|
|
83 # http://www.sleepycat.com/products/db.shtml. If you want to use the
|
|
84 # shared-library (DLL) version instead of the static library, set
|
|
85 # BUILD_DATABASE_SHARED to 1.
|
|
86 HAVE_DATABASE=0
|
|
87 BUILD_DATABASE_SHARED=0
|
|
88 DATABASE_DIR=$(OPTIONAL_LIBRARY_DIR)\db-4.3.28
|
|
89
|
|
90 # Set this to enable PostgreSQL support (not very important), and specify
|
|
91 # the directory containing PostgreSQL. Get the latest version from
|
|
92 # http://www.postgresql.org/.
|
|
93 HAVE_POSTGRESQL=0
|
|
94 POSTGRESQL_DIR=$(OPTIONAL_LIBRARY_DIR)\postgresql-8.0.3
|
|
95
|
|
96 # Set this to enable LDAP support (not very important), and specify
|
|
97 # the directory containing LDAP. It is not easy to build OpenLDAP under
|
|
98 # native MS Windows, as it is only experimentally supported. However, there
|
|
99 # is a mailing list for this, which contains postings of recent binaries and
|
|
100 # build patches; see
|
|
101 #
|
|
102 # http://lucas.bergmans.us/hacks/openldap/
|
|
103 #
|
|
104 # Get the latest version of OpenLDAP from http://www.openldap.org/.
|
|
105 HAVE_LDAP=0
|
|
106 LDAP_DIR=$(OPTIONAL_LIBRARY_DIR)\openldap-2.3.4
|
|
107
|
442
|
108 ############################################################################
|
1203
|
109 # Build settings #
|
|
110 ############################################################################
|
442
|
111
|
1330
|
112 # If you want to the built files to be placed outside of the source tree
|
|
113 # (e.g. this allows you to build multiple versions of XEmacs, with
|
|
114 # different configuration settings, from the same source tree), run
|
|
115 # `make-build-dir' to create a skeleton build tree, giving it the name of a
|
|
116 # path. This creates the specified directory and the `nt' directory below
|
|
117 # it, copies config.inc (if it exists), config.inc.samp and xemacs.mak into
|
|
118 # the `nt' directory, and modifies the config files to contain the path of
|
|
119 # the source tree in SOURCE_DIR. This will not overwrite files that
|
|
120 # already exist, so it can safely be run more than once on the same tree.
|
|
121 #
|
|
122 # Running nmake in the skeleton build tree will then build XEmacs in that
|
|
123 # directory tree, using the source files as specified. The paths of the
|
|
124 # `lisp' and `etc' directories in the source tree will be compiled into the
|
|
125 # executable as "last-resort" values -- i.e. they will be used if you
|
|
126 # simply run the executable as-is, but will not override any local copy of
|
|
127 # the `lisp' and/or `etc' directories that you may have made.
|
|
128 #
|
|
129 # Alternatively, you can just uncomment the line below for BUILD_DIR and
|
|
130 # specify a (possibly non-existent) path. Running nmake will then put its
|
|
131 # build files into a parallel directory structure underneath the specified
|
|
132 # path, creating the directories as necessary. The problem with this is
|
|
133 # that the first method above allows you to have a different copy of
|
|
134 # `config.inc' for each build directory, but doing it this way means you
|
|
135 # have only one version of config.inc, and have to manually change it for
|
|
136 # each different build.
|
|
137
|
1347
|
138 # NOTE: These cannot be relative paths. If you want the source and build to
|
|
139 # be relatives of each other, use $(MAKEROOT) to refer to the root of the
|
|
140 # current tree -- that's one level up from where xemacs.mak is located.
|
|
141
|
1330
|
142 # SOURCE_DIR=c:\src\xemacs\working
|
|
143
|
|
144 # BUILD_DIR=c:\src\xemacs\msbuilds\working
|
|
145
|
442
|
146 # Set this to specify the location of makeinfo. (If not set, XEmacs will
|
1203
|
147 # attempt to use its built-in, much slower texinfo support when building
|
|
148 # info files.) If you are building XEmacs yourself, you probably have
|
|
149 # Cygwin sitting around already. If not, you should. Cygwin provides a
|
1261
|
150 # `makeinfo.exe' in /usr/bin/makeinfo (/usr/bin is virtual, it's /bin in
|
|
151 # the actual file system).
|
|
152 MAKEINFO=c:\cygwin\bin\makeinfo.exe
|
442
|
153
|
2951
|
154 # Set this to enable debug code in XEmacs that doesn't slow things down,
|
|
155 # and to add debugging information to the executable. (The code that's
|
|
156 # enabled in XEmacs is primarily extra commands that aid in debugging
|
|
157 # problems. The kind of debugging code that slows things down --
|
|
158 # i.e. internal error-checking -- is controlled by the ERROR_CHECK_ALL
|
|
159 # variable, below.)
|
|
160 DEBUG_XEMACS=1
|
|
161
|
|
162 # Set this to turn on optimization when compiling. Normally this should
|
|
163 # be the opposite of DEBUG_XEMACS.
|
|
164 !if $(DEBUG_XEMACS)
|
814
|
165 OPTIMIZED_BUILD=0
|
2951
|
166 !else
|
|
167 OPTIMIZED_BUILD=1
|
|
168 !endif
|
814
|
169
|
872
|
170 # Set this to build with the fastcall calling convention, which uses registers
|
|
171 # instead of the stack and should speed things up a bit
|
|
172 # #### Change to 1 when I check in the ws with support for fastcall
|
|
173 USE_FASTCALL=0
|
|
174
|
814
|
175 ############################################################################
|
|
176 # Development options #
|
|
177 ############################################################################
|
|
178
|
1203
|
179 # Set this to compile in support for profiling. If you want line-by-line
|
|
180 # profiling under VC++, you also need debugging turned on.
|
|
181 PROFILE_SUPPORT=0
|
|
182
|
1333
|
183 # Set this to enable support for edit-and-continue under VC++.
|
|
184 # WARNING: This turns on incremental linking, which is known to lead to
|
|
185 # occasional weird crashes in pdump loading. If that happens, do a
|
|
186 # nmake -f xemacs.mak clean so that temacs.exe and xemacs.exe get removed.
|
|
187 SUPPORT_EDIT_AND_CONTINUE=0
|
|
188
|
800
|
189 # Uncomment this to turn off or on the error-checking code, which adds
|
|
190 # abundant internal error checking (and slows things down a lot). Normally,
|
|
191 # leave this alone -- it will be on for beta builds and off for release
|
|
192 # builds.
|
|
193 # ERROR_CHECK_ALL=0
|
|
194
|
1203
|
195 # Uncomment this to turn on or off whether we compile source files as C++
|
|
196 # files. This turns on additional error checking of various sorts. Normally,
|
|
197 # leave it alone -- it will be on when ERROR_CHECK_ALL is on.
|
|
198 # CPLUSPLUS_COMPILE=0
|
|
199
|
442
|
200 # Set this to speed up building, for development purposes.
|
1333
|
201 # WARNING: This may not completely rebuild all targets. In particular,
|
|
202 # DOC is not rebuilt, and changes to lisp.h and config.h do not trigger
|
|
203 # mass rebuilding. Other things may also be enabled that are not safe
|
|
204 # for release builds.
|
442
|
205 QUICK_BUILD=0
|
|
206
|
|
207 # Set this to see exactly which compilation commands are being run (not
|
|
208 # generally recommended).
|
|
209 VERBOSECC=0
|
|
210
|
795
|
211 # Set this to get nmake to use dependency info (recommended for development).
|
|
212 # Requires cygwin or ActiveState versions of Perl to be installed.
|
442
|
213 DEPEND=0
|
|
214
|
814
|
215 # Set this to use the portable dumper for dumping the preloaded Lisp
|
|
216 # routines, instead of the older "unexec" routines in unexnt.c.
|
|
217 USE_PORTABLE_DUMPER=1
|
872
|
218
|
1261
|
219 # Set this to use the new experimental garbage-collection routines instead
|
|
220 # of the traditional XEmacs garbage-collection routines.
|
2790
|
221 USE_KKCC=1
|
1203
|
222
|
2720
|
223 # Set this to use the new experimental allocator routines
|
2790
|
224 MC_ALLOC=1
|
2720
|
225
|
1203
|
226 # Set this to turn on the use of the union type, which gets you improved
|
|
227 # type checking of Lisp_Objects -- they're declared as unions instead of
|
|
228 # ints, and so places where a Lisp_Object is mistakenly passed to a routine
|
|
229 # expecting an int (or vice-versa), or a check is written `if (foo)'
|
|
230 # instead of `if (!NILP (foo))', will be flagged as errors. (All of these
|
|
231 # do NOT lead to the expected results! Qnil is not represented as 0 [so if
|
|
232 # (foo) will *ALWAYS* be true for a Lisp_Object], and the representation of
|
|
233 # an integer as a Lisp_Object is not just the integer's numeric value, but
|
|
234 # usually 2x the integer +/- 1.)
|
872
|
235
|
1203
|
236 # There used to be a claim that it simplified debugging. There may have
|
|
237 # been a grain of truth to this pre-19.8, when there was no lrecord type
|
|
238 # and all objects had a separate type appearing in the tag. Nowadays,
|
|
239 # however, there is no debugging gain, and in fact frequent debugging *LOSS*,
|
|
240 # since many debuggers don't handle unions very well, and usually there is
|
|
241 # no way to directly specify a union from a debugging prompt.
|
|
242
|
|
243 # Furthermore, release builds should *NOT* be done this way because (a) you
|
|
244 # may get less efficiency, with compilers that can't figure out how to
|
|
245 # optimize the union into a machine word; (b) even worse, the union type
|
|
246 # often triggers compiler bugs, especially when combined with Mule and
|
|
247 # error-checking. This has been the case with various times using GCC,
|
|
248 # *AND CURRENTLY HAPPENS WITH VC++*, at least when using pdump. Therefore,
|
|
249 # be warned!
|
|
250 USE_UNION_TYPE=0
|