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
|
|
38 # http://ftp.xemacs.org/aux/xpm-3.4k.tar.gz.
|
442
|
39 HAVE_XPM=1
|
2500
|
40 XPM_DIR=$(OPTIONAL_LIBRARY_DIR)\xpm-3.4k
|
442
|
41
|
1261
|
42 # Set this to enable GIF support (built-in).
|
442
|
43 HAVE_GIF=1
|
|
44
|
|
45 # Set this to enable PNG support (virtually mandatory), and specify
|
1261
|
46 # the directories containing png and zlib. Get the latest version from
|
2500
|
47 # ftp://ftp.uu.net/graphics/png/. NOTE: In order to compile libpng,
|
|
48 # you will have to rename the zlib directory to just `zlib'. We don't
|
|
49 # do that here so we can preserve the version number, like for the other
|
|
50 # libraries.
|
442
|
51 HAVE_PNG=1
|
2500
|
52 PNG_DIR=$(OPTIONAL_LIBRARY_DIR)\libpng-1.2.8
|
|
53 ZLIB_DIR=$(OPTIONAL_LIBRARY_DIR)\zlib-1.2.1
|
442
|
54
|
2500
|
55 # Set this to enable JPEG support (useful, but not necessary), and specify
|
|
56 # the directory containing jpeg. Get the latest version from
|
|
57 # ftp://ftp.uu.net/graphics/jpeg/.
|
|
58 HAVE_JPEG=1
|
|
59 JPEG_DIR=$(OPTIONAL_LIBRARY_DIR)\jpeg-6b
|
442
|
60
|
2500
|
61 # Set this to enable TIFF support (not very important), and specify the
|
|
62 # directory containing tiff. Get the latest version from
|
|
63 # ftp://ftp.uu.net/graphics/tiff/.
|
|
64 HAVE_TIFF=1
|
|
65 TIFF_DIR=$(OPTIONAL_LIBRARY_DIR)\tiff-v3.5.7
|
442
|
66
|
2500
|
67 # Set this to enable XFace support (not very important), and specify the
|
|
68 # directory containing compface. Get the library from
|
|
69 # http://ftp.xemacs.org/aux/compface-1.5.tar.gz.
|
|
70 HAVE_XFACE=1
|
|
71 COMPFACE_DIR=$(OPTIONAL_LIBRARY_DIR)\compface-1.5
|
442
|
72
|
|
73 ############################################################################
|
1203
|
74 # Build settings #
|
|
75 ############################################################################
|
442
|
76
|
1330
|
77 # If you want to the built files to be placed outside of the source tree
|
|
78 # (e.g. this allows you to build multiple versions of XEmacs, with
|
|
79 # different configuration settings, from the same source tree), run
|
|
80 # `make-build-dir' to create a skeleton build tree, giving it the name of a
|
|
81 # path. This creates the specified directory and the `nt' directory below
|
|
82 # it, copies config.inc (if it exists), config.inc.samp and xemacs.mak into
|
|
83 # the `nt' directory, and modifies the config files to contain the path of
|
|
84 # the source tree in SOURCE_DIR. This will not overwrite files that
|
|
85 # already exist, so it can safely be run more than once on the same tree.
|
|
86 #
|
|
87 # Running nmake in the skeleton build tree will then build XEmacs in that
|
|
88 # directory tree, using the source files as specified. The paths of the
|
|
89 # `lisp' and `etc' directories in the source tree will be compiled into the
|
|
90 # executable as "last-resort" values -- i.e. they will be used if you
|
|
91 # simply run the executable as-is, but will not override any local copy of
|
|
92 # the `lisp' and/or `etc' directories that you may have made.
|
|
93 #
|
|
94 # Alternatively, you can just uncomment the line below for BUILD_DIR and
|
|
95 # specify a (possibly non-existent) path. Running nmake will then put its
|
|
96 # build files into a parallel directory structure underneath the specified
|
|
97 # path, creating the directories as necessary. The problem with this is
|
|
98 # that the first method above allows you to have a different copy of
|
|
99 # `config.inc' for each build directory, but doing it this way means you
|
|
100 # have only one version of config.inc, and have to manually change it for
|
|
101 # each different build.
|
|
102
|
1347
|
103 # NOTE: These cannot be relative paths. If you want the source and build to
|
|
104 # be relatives of each other, use $(MAKEROOT) to refer to the root of the
|
|
105 # current tree -- that's one level up from where xemacs.mak is located.
|
|
106
|
1330
|
107 # SOURCE_DIR=c:\src\xemacs\working
|
|
108
|
|
109 # BUILD_DIR=c:\src\xemacs\msbuilds\working
|
|
110
|
442
|
111 # Set this to specify the location of makeinfo. (If not set, XEmacs will
|
1203
|
112 # attempt to use its built-in, much slower texinfo support when building
|
|
113 # info files.) If you are building XEmacs yourself, you probably have
|
|
114 # Cygwin sitting around already. If not, you should. Cygwin provides a
|
1261
|
115 # `makeinfo.exe' in /usr/bin/makeinfo (/usr/bin is virtual, it's /bin in
|
|
116 # the actual file system).
|
|
117 MAKEINFO=c:\cygwin\bin\makeinfo.exe
|
442
|
118
|
814
|
119 # Set this to turn on optimization when compiling.
|
|
120 OPTIMIZED_BUILD=0
|
|
121
|
872
|
122 # Set this to build with the fastcall calling convention, which uses registers
|
|
123 # instead of the stack and should speed things up a bit
|
|
124 # #### Change to 1 when I check in the ws with support for fastcall
|
|
125 USE_FASTCALL=0
|
|
126
|
814
|
127 ############################################################################
|
|
128 # Development options #
|
|
129 ############################################################################
|
|
130
|
1203
|
131 # Set this to compile in support for profiling. If you want line-by-line
|
|
132 # profiling under VC++, you also need debugging turned on.
|
|
133 PROFILE_SUPPORT=0
|
|
134
|
814
|
135 # Set this to enable debug code in XEmacs that doesn't slow things down,
|
|
136 # and to add debugging information to the executable. (The code that's
|
|
137 # enabled in XEmacs is primarily extra commands that aid in debugging
|
|
138 # problems. The kind of debugging code that slows things down --
|
|
139 # i.e. internal error-checking -- is controlled by the ERROR_CHECK_ALL
|
|
140 # variable, below.)
|
442
|
141 DEBUG_XEMACS=1
|
|
142
|
1333
|
143 # Set this to enable support for edit-and-continue under VC++.
|
|
144 # WARNING: This turns on incremental linking, which is known to lead to
|
|
145 # occasional weird crashes in pdump loading. If that happens, do a
|
|
146 # nmake -f xemacs.mak clean so that temacs.exe and xemacs.exe get removed.
|
|
147 SUPPORT_EDIT_AND_CONTINUE=0
|
|
148
|
800
|
149 # Uncomment this to turn off or on the error-checking code, which adds
|
|
150 # abundant internal error checking (and slows things down a lot). Normally,
|
|
151 # leave this alone -- it will be on for beta builds and off for release
|
|
152 # builds.
|
|
153 # ERROR_CHECK_ALL=0
|
|
154
|
1203
|
155 # Uncomment this to turn on or off whether we compile source files as C++
|
|
156 # files. This turns on additional error checking of various sorts. Normally,
|
|
157 # leave it alone -- it will be on when ERROR_CHECK_ALL is on.
|
|
158 # CPLUSPLUS_COMPILE=0
|
|
159
|
442
|
160 # Set this to speed up building, for development purposes.
|
1333
|
161 # WARNING: This may not completely rebuild all targets. In particular,
|
|
162 # DOC is not rebuilt, and changes to lisp.h and config.h do not trigger
|
|
163 # mass rebuilding. Other things may also be enabled that are not safe
|
|
164 # for release builds.
|
442
|
165 QUICK_BUILD=0
|
|
166
|
|
167 # Set this to see exactly which compilation commands are being run (not
|
|
168 # generally recommended).
|
|
169 VERBOSECC=0
|
|
170
|
795
|
171 # Set this to get nmake to use dependency info (recommended for development).
|
|
172 # Requires cygwin or ActiveState versions of Perl to be installed.
|
442
|
173 DEPEND=0
|
|
174
|
814
|
175 # Set this to use the portable dumper for dumping the preloaded Lisp
|
|
176 # routines, instead of the older "unexec" routines in unexnt.c.
|
|
177 USE_PORTABLE_DUMPER=1
|
872
|
178
|
1261
|
179 # Set this to use the new experimental garbage-collection routines instead
|
|
180 # of the traditional XEmacs garbage-collection routines.
|
1203
|
181 USE_KKCC=0
|
|
182
|
|
183 # Set this to turn on the use of the union type, which gets you improved
|
|
184 # type checking of Lisp_Objects -- they're declared as unions instead of
|
|
185 # ints, and so places where a Lisp_Object is mistakenly passed to a routine
|
|
186 # expecting an int (or vice-versa), or a check is written `if (foo)'
|
|
187 # instead of `if (!NILP (foo))', will be flagged as errors. (All of these
|
|
188 # do NOT lead to the expected results! Qnil is not represented as 0 [so if
|
|
189 # (foo) will *ALWAYS* be true for a Lisp_Object], and the representation of
|
|
190 # an integer as a Lisp_Object is not just the integer's numeric value, but
|
|
191 # usually 2x the integer +/- 1.)
|
872
|
192
|
1203
|
193 # There used to be a claim that it simplified debugging. There may have
|
|
194 # been a grain of truth to this pre-19.8, when there was no lrecord type
|
|
195 # and all objects had a separate type appearing in the tag. Nowadays,
|
|
196 # however, there is no debugging gain, and in fact frequent debugging *LOSS*,
|
|
197 # since many debuggers don't handle unions very well, and usually there is
|
|
198 # no way to directly specify a union from a debugging prompt.
|
|
199
|
|
200 # Furthermore, release builds should *NOT* be done this way because (a) you
|
|
201 # may get less efficiency, with compilers that can't figure out how to
|
|
202 # optimize the union into a machine word; (b) even worse, the union type
|
|
203 # often triggers compiler bugs, especially when combined with Mule and
|
|
204 # error-checking. This has been the case with various times using GCC,
|
|
205 # *AND CURRENTLY HAPPENS WITH VC++*, at least when using pdump. Therefore,
|
|
206 # be warned!
|
|
207 USE_UNION_TYPE=0
|