diff nt/config.inc.samp @ 1203:5f2f8dcbfb3e

[xemacs-hg @ 2003-01-12 11:04:30 by michaels] 2002-12-16 Ben Wing <ben@xemacs.org> * README (NOTE): * config.inc.samp: * config.inc.samp (PACKAGE_PREFIX): * config.inc.samp (GTK_DIR): * config.inc.samp (COMPFACE_DIR): * config.inc.samp (USE_FASTCALL): * config.inc.samp (HAVE_VC6): New. * config.inc.samp (PROFILE_SUPPORT): * config.inc.samp (DEBUG_XEMACS): * config.inc.samp (USE_PORTABLE_DUMPER): * config.inc.samp (USE_KKCC): New. * config.inc.samp (USE_UNION_TYPE): New. * xemacs.dsp (CFG): * xemacs.mak (HAVE_VC6): * xemacs.mak (ERROR_CHECK_ALL): New. * xemacs.mak (CPLUSPLUS_COMPILE): New. * xemacs.mak (USE_KKCC): New. * xemacs.mak (USE_UNION_TYPE): New. * xemacs.mak (USE_PORTABLE_DUMPER): * xemacs.mak (PROFILE_FLAGS): * xemacs.mak (CPLUSPLUS_COMPILE_FLAGS): New. * xemacs.mak (DUMPER_DEFINES): * xemacs.mak (KKCC_DEFINES): New. * xemacs.mak (DEFINES): * xemacs.mak (LASTFILE_FLAGS): * xemacs.mak (TEMACS_CPP_FLAGS_NO_CFLAGS): * xemacs.mak (OS): Support C++ compilation, KKCC compilation. See src/ChangeLog. Add stuff about the evilness of USE_UNION_TYPE.
author michaels
date Sun, 12 Jan 2003 11:04:30 +0000
parents 79c6ff3eef26
children 465bd3c7d932
line wrap: on
line diff
--- a/nt/config.inc.samp	Sun Jan 12 11:03:16 2003 +0000
+++ b/nt/config.inc.samp	Sun Jan 12 11:04:30 2003 +0000
@@ -1,12 +1,16 @@
 # -*- mode: makefile -*-
 
 ############################################################################
+#                            Install options                               #
+############################################################################
 
 INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING)
 
 PACKAGE_PREFIX=c:\Program Files\XEmacs
 
 ############################################################################
+#                      Compiled-in features: basic                         #
+############################################################################
 
 # Multilingual support.
 MULE=0
@@ -27,6 +31,8 @@
 GTK_DIR=
 
 ############################################################################
+#                  Compiled-in features: graphics formats                  #
+############################################################################
 
 # Set this to enable XPM support (virtually mandatory), and specify
 # the directory containing xpm.
@@ -56,12 +62,15 @@
 COMPFACE_DIR=
 
 ############################################################################
+#                            Build settings                                #
+############################################################################
 
 # Set this to specify the location of makeinfo. (If not set, XEmacs will
-# attempt to use its built-in texinfo support when building info files.)
-MAKEINFO=c:\src\texinfo-4.0\makeinfo\makeinfo.exe
-
-############################################################################
+# attempt to use its built-in, much slower texinfo support when building
+# info files.) If you are building XEmacs yourself, you probably have
+# Cygwin sitting around already.  If not, you should.  Cygwin provides a
+# `makeinfo.exe' in /usr/bin/makeinfo.
+MAKEINFO=c:\cygwin\usr\bin\makeinfo.exe
 
 # Set this to turn on optimization when compiling.
 OPTIMIZED_BUILD=0
@@ -71,14 +80,17 @@
 # #### Change to 1 when I check in the ws with support for fastcall
 USE_FASTCALL=0
 
-# Set this to compile in support for profiling.  If you want line-by-line
-# profiling under VC++, you also need debugging turned on.
-PROFILE_SUPPORT=0
+# True if running VC++ 6 or later.
+HAVE_VC6=1
 
 ############################################################################
 #                          Development options                             #
 ############################################################################
 
+# Set this to compile in support for profiling.  If you want line-by-line
+# profiling under VC++, you also need debugging turned on.
+PROFILE_SUPPORT=0
+
 # Set this to enable debug code in XEmacs that doesn't slow things down,
 # and to add debugging information to the executable. (The code that's
 # enabled in XEmacs is primarily extra commands that aid in debugging
@@ -87,15 +99,17 @@
 # variable, below.)
 DEBUG_XEMACS=1
 
-# True if running VC++ 6 or later.
-HAVE_VC6=1
-
 # Uncomment this to turn off or on the error-checking code, which adds
 # abundant internal error checking (and slows things down a lot).  Normally,
 # leave this alone -- it will be on for beta builds and off for release
 # builds.
 # ERROR_CHECK_ALL=0
 
+# Uncomment this to turn on or off whether we compile source files as C++
+# files.  This turns on additional error checking of various sorts.  Normally,
+# leave it alone -- it will be on when ERROR_CHECK_ALL is on.
+# CPLUSPLUS_COMPILE=0
+
 # Set this to speed up building, for development purposes.
 QUICK_BUILD=0
 
@@ -111,17 +125,31 @@
 # routines, instead of the older "unexec" routines in unexnt.c.
 USE_PORTABLE_DUMPER=1
 
-# Set this to get improved type checking of Lisp_Objects -- with this
-# setting, they're declared as unions instead of ints, and so places where
-# a Lisp_Object is mistakenly passed to a routine expecting an int (or
-# vice-versa), or a check is written `if (foo)' instead of `if (!NILP
-# (foo))', will be flagged as errors. (All of these do NOT lead to the
-# expected results!  Qnil is not represented as 0 (so if (foo) will
-# *ALWAYS* be true for a Lisp_Object), the representation of an integer as
-# a Lisp_Object is not just the integer's numeric value (but usually 2x the
-# integer +/- 1).
+# Set this to use new experimental GC algorithms.
+USE_KKCC=0
+
+# Set this to turn on the use of the union type, which gets you improved
+# type checking of Lisp_Objects -- they're declared as unions instead of
+# ints, and so places where a Lisp_Object is mistakenly passed to a routine
+# expecting an int (or vice-versa), or a check is written `if (foo)'
+# instead of `if (!NILP (foo))', will be flagged as errors. (All of these
+# do NOT lead to the expected results!  Qnil is not represented as 0 [so if
+# (foo) will *ALWAYS* be true for a Lisp_Object], and the representation of
+# an integer as a Lisp_Object is not just the integer's numeric value, but
+# usually 2x the integer +/- 1.)
 
-# Some also claim it simplifies debugging, but I don't really believe them.
-# Definitely don't do your normal builds this way, because you may well get
-# less efficiency, and could conceivably trigger compiler bugs (has definitely happened, many times, with gcc).
-# USE_UNION_TYPE=1
+# There used to be a claim that it simplified debugging.  There may have
+# been a grain of truth to this pre-19.8, when there was no lrecord type
+# and all objects had a separate type appearing in the tag.  Nowadays,
+# however, there is no debugging gain, and in fact frequent debugging *LOSS*,
+# since many debuggers don't handle unions very well, and usually there is
+# no way to directly specify a union from a debugging prompt.
+
+# Furthermore, release builds should *NOT* be done this way because (a) you
+# may get less efficiency, with compilers that can't figure out how to
+# optimize the union into a machine word; (b) even worse, the union type
+# often triggers compiler bugs, especially when combined with Mule and
+# error-checking.  This has been the case with various times using GCC,
+# *AND CURRENTLY HAPPENS WITH VC++*, at least when using pdump.  Therefore,
+# be warned!
+USE_UNION_TYPE=0