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