view nt/config.inc.samp @ 1314:15a91d7ae2d1

[xemacs-hg @ 2003-02-20 08:16:21 by ben] check in makefile fixes et al Makefile.in.in: Major surgery. Move all stuff related to building anything in the src/ directory into src/. Simplify the dependencies -- everything in src/ is dependent on the single entry `src' in MAKE_SUBDIRS. Remove weirdo targets like `all-elc[s]', dump-elc[s], etc. mule/mule-msw-init.el: Removed. Delete this file. mule/mule-win32-init.el: New file, with stuff from mule-msw-init.el -- not just for MS Windows native, boys and girls! bytecomp.el: Change code inserted to catch trying to load a Mule-only .elc file in a non-Mule XEmacs. Formerly you got the rather cryptic "The required feature `mule' cannot be provided". Now you get "Loading this file requires Mule support". finder.el: Remove dependency on which directory this function is invoked from. update-elc.el: Don't mess around with ../src/BYTECOMPILE_CHANGE. Now that Makefile.in.in and xemacs.mak are in sync, both of them use NEEDTODUMP and the other one isn't used. dumped-lisp.el: Rewrite in terms of `list' and `nconc' instead of assemble-list, so we can have arbitrary forms, not just `when-feature'. very-early-lisp.el: Nuke this file. finder-inf.el, packages.el, update-elc.el, update-elc-2.el, loadup.el, make-docfile.el: Eliminate references to very-early-lisp. msw-glyphs.el: Comment clarification. xemacs.mak: Add macros DO_TEMACS, DO_XEMACS, and a few others; this macro section is now completely in sync with src/Makefile.in.in. Copy check-features, load-shadows, and rebuilding finder-inf.el from src/Makefile.in.in. The main build/dump/recompile process is now synchronized with src/Makefile.in.in. Change `WARNING' to `NOTE' and `error checking' to `error-checking' TO avoid tripping faux warnings and errors in the VC++ IDE. Makefile.in.in: Major surgery. Move all stuff related to building anything in the src/ directory from top-level Makefile.in.in to here. Simplify the dependencies. Rearrange into logical subsections. Synchronize the main compile/dump/build-elcs section with xemacs.mak, which is already clean and in good working order. Remove weirdo targets like `all-elc[s]', dump-elc[s], etc. Add additional levels of macros \(e.g. DO_TEMACS, DO_XEMACS, TEMACS_BATCH, XEMACS_BATCH, XEMACS_BATCH_PACKAGES) to factor out duplicated stuff. Clean up handling of "HEAP_IN_DATA" (Cygwin) so it doesn't need to ignore the return value from dumping. Add .NO_PARALLEL since various aspects of building and dumping must be serialized but do not always have dependencies between them (this is impossible in some cases). Everything related to src/ now gets built in one pass in this directory by just running `make' (except the Makefiles themselves and config.h, paths.h, Emacs.ad.h, and other generated .h files). console.c: Update list of possibly valid console types. emacs.c: Rationalize the specifying and handling of the type of the first frame. This was originally prompted by a workspace in which I got GTK to compile under C++ and in the process fixed it so it could coexist with X in the same build -- hence, a combined TTY/X/MS-Windows/GTK build is now possible under Cygwin. (However, you can't simultaneously *display* more than one kind of device connection -- but getting that to work is not that difficult. Perhaps a project for a bored grad student. I (ben) would do it but don't see the use.) To make sense of this, I added new switches that can be used to specifically indicate the window system: -x [aka --use-x], -tty \[aka --use-tty], -msw [aka --use-ms-windows], -gtk [aka --use-gtk], and -gnome [aka --use-gnome, same as --use-gtk]. -nw continues as an alias for -tty. When none have been given, XEmacs checks for other parameters implying particular device types (-t -> tty, -display -> x [or should it have same treatment as DISPLAY below?]), and has ad-hoc logic afterwards: if env var DISPLAY is set, use x (or gtk? perhaps should check whether gnome is running), else MS Windows if it exsits, else TTY if it exists, else stream, and you must be running in batch mode. This also fixes an existing bug whereby compiling with no x, no mswin, no tty, when running non- interactively (e.g. to dump) I get "sorry, must have TTY support". emacs.c: Turn on Vstack_trace_on_error so that errors are debuggable even when occurring extremely early in reinitialization. emacs.c: Try to make sure that the user can see message output under Windows (i.e. it doesn't just disappear right away) regardless of when it occurs, e.g. in the middle of creating the first frame. emacs.c: Define new function `emacs-run-status', indicating whether XEmacs is noninteractive or interactive, whether raw, post-dump/pdump-load or run-temacs, whether we are dumping, whether pdump is in effect. event-stream.c: It's "mommas are fat", not "momas are fat". Fix other typo. event-stream.c: Conditionalize in_menu_callback check on HAVE_MENUBARS, because it won't exist on w/o menubar support, lisp.h: More hackery on RETURN_NOT_REACHED. Cygwin v3.2 DOES complain here if RETURN_NOT_REACHED() is blank, as it is for GCC 2.5+. So make it blank only for GCC 2.5 through 2.999999999999999. Declare Vstack_trace_on_error. profile.c: Need to include "profile.h" to fix warnings. sheap.c: Don't fatal() when need to rerun Make, just stderr_out() and exit(0). That way we can distinguish between a dumping failing expectedly (due to lack of stack space, triggering another dump) and unexpectedly, in which case, we want to stop building. (or go on, if -K is given) syntax.c, syntax.h: Use ints where they belong, and enum syntaxcode's where they belong, and fix warnings thereby. syntax.h: Fix crash caused by an edge condition in the syntax-cache macros. text.h: Spacing fixes. xmotif.h: New file, to get around shadowing warnings. EmacsManager.c, event-Xt.c, glyphs-x.c, gui-x.c, input-method-motif.c, xmmanagerp.h, xmprimitivep.h: Include xmotif.h. alloc.c: Conditionalize in_malloc on ERROR_CHECK_MALLOC. config.h.in, file-coding.h, fileio.c, getloadavg.c, select-x.c, signal.c, sysdep.c, sysfile.h, systime.h, text.c, unicode.c: Eliminate HAVE_WIN32_CODING_SYSTEMS, use WIN32_ANY instead. Replace defined (WIN32_NATIVE) || defined (CYGWIN) with WIN32_ANY. lisp.h: More futile attempts to walk and chew gum at the same time when dealing with subr's that don't return.
author ben
date Thu, 20 Feb 2003 08:16:21 +0000
parents 465bd3c7d932
children 4542b72c005e
line wrap: on
line source

# -*- 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

# Native MS Windows support.
HAVE_MS_WINDOWS=1

# X Windows support.  Not working at all and probably never will.  If you
# want X support under MS Windows, compile with Cygwin instead.
HAVE_X_WINDOWS=0
X11_DIR=

# GTK support. Do NOT set this to 1; as of xemacs-21.5-b6
# gtk-xemacs is not supported on MSWindows (mingw or msvc).
# Yes, we know that gtk has been ported to native MSWindows
# but XEmacs is not yet ready to use that port.
HAVE_GTK=0
GTK_DIR=

############################################################################
#                  Compiled-in features: graphics formats                  #
############################################################################

# Set this to enable XPM support (virtually mandatory), and specify
# the directory containing xpm.  Get the library from
# http://ftp.xemacs.org/aux/xpm-3.4k.tar.gz.
HAVE_XPM=1
XPM_DIR=c:\src\xpm-3.4k

# Set this to enable GIF support (built-in).
HAVE_GIF=1

# Set this to enable PNG support (virtually mandatory), and specify
# the directories containing png and zlib.  Get the latest version from
# ftp://ftp.uu.net/graphics/png/.  You will have to rename the zlib directory
# from zlib-1.1.3 or whatever to just `zlib' for the build to work.
HAVE_PNG=1
PNG_DIR=c:\src\libpng-1.0.12
ZLIB_DIR=c:\src\zlib

# Set this to enable TIFF support, and specify the directory containing tiff.
# Get the latest version from ftp://ftp.uu.net/graphics/tiff/.  Not on by
# default since TIFF isn't really very important and those TIFF wankers
# couldn't be bothered to incorporate minimal MS-Windows patches they've
# had sitting around for years, so getting it to build is a major pain in
# the ass.
HAVE_TIFF=0
TIFF_DIR=c:\src\tiff-v3.4

# Set this to enable JPEG support, and specify the directory containing jpeg.
# Get the latest version from ftp://ftp.uu.net/graphics/jpeg/.
HAVE_JPEG=1
JPEG_DIR=c:\src\jpeg-6b

# Set this to enable XFace support, and specify the directory containing
# compface.  Get the library from http://ftp.xemacs.org/aux/compface.tar.gz.
HAVE_XFACE=0
COMPFACE_DIR=

############################################################################
#                            Build settings                                #
############################################################################

# Set this to specify the location of makeinfo. (If not set, XEmacs will
# 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 (/usr/bin is virtual, it's /bin in
# the actual file system).
MAKEINFO=c:\cygwin\bin\makeinfo.exe

# Set this to turn on optimization when compiling.
OPTIMIZED_BUILD=0

# Set this to build with the fastcall calling convention, which uses registers
# instead of the stack and should speed things up a bit
# #### Change to 1 when I check in the ws with support for fastcall
USE_FASTCALL=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
# problems.  The kind of debugging code that slows things down --
# i.e. internal error-checking -- is controlled by the ERROR_CHECK_ALL
# variable, below.)
DEBUG_XEMACS=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

# Set this to see exactly which compilation commands are being run (not
# generally recommended).
VERBOSECC=0

# Set this to get nmake to use dependency info (recommended for development).
# Requires cygwin or ActiveState versions of Perl to be installed.
DEPEND=0

# Set this to use the portable dumper for dumping the preloaded Lisp
# routines, instead of the older "unexec" routines in unexnt.c.
USE_PORTABLE_DUMPER=1

# Set this to use the new experimental garbage-collection routines instead
# of the traditional XEmacs garbage-collection routines.
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.)

# 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